Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    problema confronto interi

    Ciao ragazzi ho un problema con questo codice:




    $form='<form action="index.php?option=com_prova&view=prova&form =yes" method="post" name="prenotazione">

    <font size="3">Inserisci il numero di persone (per gruppi maggiori di 18 persone contattare direttamente il numero di telefono 113 in modo da avere un prezzo vantaggioso)</font>


    <select name="numero_persone" onChange="Visualizza(\'numero_stanze\');Controllo_ persone();">
    <option selected="selected" value="0"></option>';
    for($i=1;$i<19;$i++){
    $form=$form.'<option value="'.$i.'">'.$i.'</option>';
    }
    $form=$form.'
    </select>






    <div id="numero_stanze" style="display: none;">
    <font size="3">Quante stanze vuoi prenotare?
    </font>


    <select name="numero_stanze" onChange="Controllo_stanze();">
    <option selected="selected" value="0"></option>';
    for($i=1;$i<9;$i++){
    $form=$form.'<option value="'.$i.'">'.$i.'</option>';
    }
    $form=$form.'
    </select>








    function Visualizza(campo)
    {
    var e=document.getElementById(campo);
    e.style.display="block";
    //alert(e.value);
    }

    function Controllo_persone()
    {
    var numero_stanze = document.prenotazione.numero_stanze.value;
    if(numero_stanze != 0){
    Controllo_stanze();
    }
    }

    function Controllo_stanze()
    {
    var numero_stanze = document.prenotazione.numero_stanze.value;
    var numero_persone = document.prenotazione.numero_persone.value;
    var maximo=0;
    maximo=4*numero_stanze;
    if(maximo < numero_persone){
    var messaggio = "Hai selezionato "+numero_stanze;
    if(numero_stanze==1){
    messaggio=messaggio+" stanza ";
    }else{
    messaggio=messaggio+" stanze ";
    }
    messaggio=messaggio+"per "+numero_persone;
    if(numero_persone==1){
    messaggio=messaggio+" persona";
    }else{
    messaggio=messaggio+" persone";
    }

    messaggio=messaggio+".\nTroppe poche stanze!\nOgni stanza al massimo può essere formata da 4 persone"
    alert(messaggio);
    disattiva_stanze();
    return false;
    }else{
    if(numero_persone < numero_stanze ){
    alert(numero_stanze > numero_persone + numero_persone < numero_stanze );
    var messaggio = "Hai selezionato "+numero_stanze;
    if(numero_stanze==1){
    messaggio=messaggio+" stanza ";
    }else{
    messaggio=messaggio+" stanze ";
    }
    messaggio=messaggio+"per "+numero_persone;
    if(numero_persone==1){
    messaggio=messaggio+" persona";
    }else{
    messaggio=messaggio+" persone";
    }
    messaggio=messaggio+".\nTroppe stanze!"
    alert(messaggio);
    disattiva_stanze();
    return false;
    }else{
    attiva_stanze(numero_stanze);
    }
    }
    }



    Se metto nel form 10 persone e 8 stanze o altri valori accettabili mi cade nel messaggio "troppe stanze", cioe confronta numero_persone e numero_stanze e valuta numero_stanze maggiore anche se più piccolo, da cosa può dipendere?

  2. #2
    quando prelevei con javascript il value di un campo e tale value deve essere numerico, devi sempre fare il parseInt prima - un esempio:

    var numero_stanze = parseInt( document.prenotazione.numero_stanze.value );

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.