Ciao a tutti,
ho un div che vorrei far visualizzare solamente se viene selezionata una determinata opzione di un campo select. Come posso fare?
Ciao a tutti,
ho un div che vorrei far visualizzare solamente se viene selezionata una determinata opzione di un campo select. Come posso fare?
Uno secnario semplice, con un codice che non dovrebbe richiedere troppe spiegazioni, è questo:
======
<form>
<select onchange="bho(this.options[this.selectedIndex])">
<option value="1" selected>opzione 1</option>
<option value="2">opzione 2</option>
</select>
<div id="foo" style="display:none;">ciao</div>
</form>
<script>
function bho(x){
if(x.value=="2"){/*o qualsiasi altra condizione tu preferisca*/
document.getElementById("foo").style.display="bloc k";
}
else{
document.getElementById("foo").style.display="none ";
};
}
</script>
=====
scusa la domanda ma questo script è compatibile con Firefox, Opera, etc.?
ho verificato con internet explorer 7, firefox, opera e tutto è ok. Ora provo con netscape e seamonkey. Grazie moltissime!
Ho preso questo script e funziona alla grande
L'ho applicato al mio e funziona solo c'e' ancora un piccolo problemino
Quando accedo alla pagina indipendentemente da quello che è selezionato nella select non mi compare nulla,logicamente xchè (style="display:none;") ma se tolgo questa stringa e lascio solo <div id="foo">ciao</div> e sulla mia select ho un'eco preso dal database "<?php echo $row_Recordset1['prova'];?>" uguale a N xchè la parola ciao me la mostra lo stesso,e per farla scomparire devo riselezionare NO quando xrò era gia selezionata?codice:<script> function bho(x){ if(x.value=="Y"){ document.getElementById("foo").style.display="block"; } else{ document.getElementById("foo").style.display="none"; }} </script> <body> <form> <select onchange="bho(this.options[this.selectedIndex])"> <option value="<?php echo $row_Recordset1['prova']; ?>" selected><?php echo $row_Recordset1['prova']; ?></option> <option value="Y" selected>SI</option> <option value="N">NO</option> </select> <div id="foo" style="display:none;">ciao</div> </form>
Spero di essermi spiegato
![]()
up!!!
![]()
Premesso che non conosco il php pertanto non capisco cosa riporterà la prima option, sicuramente qui c'è un errore:
Non puoi avere due selected.codice:<option value="<?php echo $row_Recordset1['prova']; ?>" selected><?php echo $row_Recordset1['prova']; ?></option> <option value="Y" selected>SI</option> <option value="N">NO</option>
Poi da quello che ho capito, dopo averlo riletto 4 volte. (ma prima di pubblicare un annuncio/risposta la rilegge? :master: Molta gente non risponde perché non capisce)
Domanda: tu vorresti che se nella select è selezionato no non mostri il div mentre lo mostri se selezionato si, giusto?
Se la risposta è si potresti gestire il tutto lato server
<div id="foo" <? qui scrivi il codice php che mostra o meno il div?>>ciao</div> lo stesso codice lo dovresti poi utilizzare per selezionare anche la option.
Questa è solo un ipotesi, ma ritengo anche la strada più facile e più corretta.
Se invece non è come ho capito, per semplificare metti la pagina online e posta il link.
![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Hai ragione sulla select avevo sbagliato a trascrivere
Hai capito bene (lo so ho spiegato come i canicodice:<select name="camere" id="camere" onchange="bho(this.options[this.selectedIndex])"> <option value="<?php if($row_Recordset1['prova']=="Y") echo "Y"; else echo "N"; ?>"> <?php if($row_Recordset1['prova']=="Y") echo "SI"; else echo "NO";?> </option> <option value="Y">SI</option> <option value="N">NO</option> </select>)
Ho provato a fare come mi hai detto ma non so se ho capito bene xchè continua a fare sempre come primacodice:Domanda: tu vorresti che se nella select è selezionato no non mostri il div mentre lo mostri se selezionato si, giusto?
codice:<script> function bho(x){ if(x.value=="Y"){ document.getElementById("foo").style.display="block"; } else{ document.getElementById("foo").style.display="none"; }} </script> <body> <select name="inse" id="inse" onchange="bho(this.options[this.selectedIndex])"> <option value="<?php if($row_Recordset1['prova']=="Y") echo "Y"; else echo "N"; ?>"> <?php if($row_Recordset1['prova']=="Y") echo "SI"; else echo "NO";?> </option> <option value="Y">SI</option> <option value="N">NO</option> </select> </p> <div id="foo" <?php if($row_Recordset1['prova']=="Y") echo "Y"; else echo "N";?> div align="center">ciao</div> </form>![]()
![]()
Come già ribadito non conosco il php, potrei scrivere delle cavolate che dovrai sistemare.
Questo è il massimo che posso fare di php, e forse devi fare un ciclo for in php per la select. Spero tu abbia capito il concetto di più non saprei che fare.codice:<script> function bho(x){ if(x.value=="Y"){ document.getElementById("foo").style.display="block"; } else{ document.getElementById("foo").style.display="none"; }} </script> <body> <select name="inse" id="inse" onchange="bho(this.options[this.selectedIndex])"> <?php if($row_Recordset1['prova']=="Y") echo "<option value=\"Y\" selected>SI</option>Y</option>"; else echo "<option value=\"Y\">SI</option>Y</option>"; ?> <?php if($row_Recordset1['prova']=="Y") echo "<option value=\"N\" selected>NO</option>SI"; else echo "<option value=\"Y\" selected>SI</option>Y</option>";?> </select> </p> <div id="foo" <?php if($row_Recordset1['prova']=="Y") echo "style=\"display:inline;\""; else echo "style=\"display:none;\"";?> div align="center">ciao</div> </form>
![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui