Visualizzazione dei risultati da 1 a 5 su 5

Discussione: calcoli

  1. #1

    calcoli

    Ciao ragazzi, sto ingiallendo .... nn riesco a risolvere questo calcolo :
    dovrebbe fare la somma in base alla scelta del periodo......
    grazie

    <script type="text/javascript">
    function appartamentiDelMese(indice){
    Mese0 = ["Appartamento A euro 480"]
    Mese1 = ["Appartamento A euro 480"]
    Mese2 = ["Appartamento A euro 480"]
    Mese3 = ["Appartamento A euro 480"]
    Mese4 = ["Appartamento A euro 480"]
    Mese5 = ["Appartamento A euro 480"]
    Mese6 = ["Appartamento A euro 680"]
    Mese7 = ["Appartamento A euro 680"]
    Mese8 = ["Appartamento A euro 680"]
    Mese9 = ["Appartamento B euro 440"]
    Mese10 = ["Appartamento B euro 440"]
    Mese11 = ["Appartamento B euro 440"]


    var selectApp = document.forms['prenotazione'].Appartamento
    selectApp.options.length = 0
    for(i=0;i<window["Mese"+indice].length; i++)
    selectApp.options[i] = new Option(window["Mese"+indice][i])
    }

    var Orig=new Array();
    var Dest=new Array();
    var nm=0;
    var tc=0;

    function DoCalc(form) {
    n_sett=prenotazione.settimane.options[prenotazione.settimane.selectedIndex].value;
    n_euro=prenotazione.Appartamento.options[prenotazione.Appartamento.selectedIndex].value;

    if (n_sett=="" || n_euro=="") {
    alert("inserisci la data");
    }
    else {
    message= (n_sett * n_euro);
    document.prenotazione.totale.value=message
    }
    }
    </script>

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    stai cercando di ottenere il prodotto di 2 stringhe,
    devi convertire in interi con parseInt (o parseFloat se servono decimali)

    n_sett=parseInt(prenotazione.settimane.options[prenotazione.settimane.selectedIndex].value, 10)
    ...
    ciao

  3. #3
    Grazie !!! sei gentilissimo , ma nn riesco a farlo funzioinare anche cosi......




    <script type="text/javascript">
    function appartamentiDelMese(indice){
    Mese0 = ["Appartamento A euro 480"]
    Mese1 = ["Appartamento A euro 480"]
    Mese2 = ["Appartamento A euro 480"]
    Mese3 = ["Appartamento A euro 480"]
    Mese4 = ["Appartamento A euro 480"]
    Mese5 = ["Appartamento A euro 480"]
    Mese6 = ["Appartamento A euro 680"]
    Mese7 = ["Appartamento A euro 680"]
    Mese8 = ["Appartamento A euro 680"]
    Mese9 = ["Appartamento B euro 440"]
    Mese10 = ["Appartamento B euro 440"]
    Mese11 = ["Appartamento B euro 440"]


    var selectApp = document.forms['prenotazione'].Appartamento
    selectApp.options.length = 0
    for(i=0;i<window["Mese"+indice].length; i++)
    selectApp.options[i] = new Option(window["Mese"+indice][i])
    }

    var Orig=new Array();
    var Dest=new Array();
    var nm=0;
    var tc=0;

    function DoCalc(form) {
    n_sett=parseInt(prenotazione.settimane.options[prenotazione.settimane.selectedIndex].value, 10
    n_euro=parseInt(prenotazione.settimane.options[prenotazione.settimane.selectedIndex].value, 10

    if (n_sett=="" || n_euro=="") {
    alert("inserisci la data");
    }
    else {
    message= (n_sett * n_euro);
    document.prenotazione.totale.value=message
    }
    }
    </script>

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    dopo 10 va chiusa la parentesi,
    + tardi gli do un occhio ma credo sia quello
    ciao

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Codice PHP:
    // se passi un riferimento al form usalo al posto di document.prenotazione o (peggio perchè errore) solo prenotazione
    // form potrebbe essere parola riservata in javascript
    function DoCalc(f) { 
    // parseInt del value dell' option selezionata, ma sei certo che l' option abbia un value? (vedi sotto)
    // parseInt restituisce NaN (Not a Number) se non è stato possibile convertire in intero
    // ("120.67 euro" diventerebbe 120, "euro 120" diventerebbe NaN perchè la stringa inizia con caratteri non numerici)
      
    n_sett=parseInt(f.settimane.options[f.settimane.selectedIndex].value10)
      
    n_euro=parseInt(f.Appartamento.options[f.Appartamento.selectedIndex].value10)

    // se la stringa è diventata un numero non puoi controllare che il valore sia vuoto, devi controllare che sia un numero
      
    if (isNaN(n_sett) || isNaN(n_euro)) { 
        
    alert("inserisci la data"); 
      } 
      else { 
    // ora puoi ottenere e scrivere nel campo il prodotto dei due numeri
        
    message= (n_sett n_euro); 
        
    f.totale.value=message 
      


    da richiamare con
    <input type="button" value="calcola" onclick="DoCalc(this.form)" />

    veniamo alla questione del value, questo
    codice:
    <script type="text/javascript"> 
    function appartamentiDelMese(indice){ 
    Mese0 = ["Appartamento A euro 480"] 
    Mese1 = ["Appartamento A euro 480"] 
    Mese2 = ["Appartamento A euro 480"] 
    Mese3 = ["Appartamento A euro 480"] 
    Mese4 = ["Appartamento A euro 480"] 
    Mese5 = ["Appartamento A euro 480"] 
    Mese6 = ["Appartamento A euro 680"] 
    Mese7 = ["Appartamento A euro 680"] 
    Mese8 = ["Appartamento A euro 680"] 
    Mese9 = ["Appartamento B euro 440"] 
    Mese10 = ["Appartamento B euro 440"] 
    Mese11 = ["Appartamento B euro 440"] 
    
    
    var selectApp = document.forms['prenotazione'].Appartamento 
    selectApp.options.length = 0 
    for(i=0;i<window["Mese"+indice].length; i++) 
    selectApp.options[i] = new Option(window["Mese"+indice][i]) 
    }
    mi suona un po' strano, vuoi scrivere sempre un' unica option?
    da quello che leggo qualsiasi sia il mese avrai un solo valore in array
    a che pro un array e a che pro ciclarvi?

    inoltre così facendo
    new Option(window["Mese"+indice][i])
    assegni solo il testo dell' option e non il value

    new Option(testo,value)

    da qui probabilmente l' impossibilità di ottenere il prodotto

    se spieghi meglio come/quando/perchè richiami appartamentiDelMese vediamo di sistemarlo
    (sempre che tu non vi riesca da solo)
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.