Ciao, il mio problema è questo, ho una select che inizialmente popolo al caricamento della pagina.
Se poi spunto una casella di tipo checkbox, la select viene disattivata e svuotata del suo contenuto e fin qui tutto ok, deselezionando il checkbox invece mi si deve ripopolare e anche questo funziona soltanto noto che inizialmente non compare il primo valore ma un campo vuoto e poi cliccando sulla freccettina del menu select posso vedere che sono stati riaggiunti correttamente tutti i valori.
Allora ho pensato che il problema fosse andando a riaggiungere le opzioni della select non dichiaro quale mi deve essere visualizzata inizialmente. Ho provato con selectIndex ma non va e neanche con selectItem come potete vedere nel codice che posto qui sotto. Tuttavia mettendo un alert dopo quel selectItem mi accorgo che fin quando non viene premuto l'ok dell'alert il valore della select è stato correttamente selezionato. Premo Ok e magicamente riscompare. Qualcuno ha un'idea su come si possa risolvere questa cosa?
Codice PHP:
<script type="text/javascript">
function Accept(id) {
var casella = document.getElementById(id);
var notval = document.getElementById("checkbox"+id);
if (notval.checked){
clear(casella);
casella.disabled = true;
casella.value = "";
}
else{
clear(casella);
casella.disabled = false;
casella.value = popolasel(id);
}
}
function popolasel(list){
listp = new Array();
if (list=="LIST_TAPPE"){
<?php do { ?>
listp = listp.concat("<?php echo $row_Recordset2['gruppo']?>");
<?php } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
$rows = mysql_num_rows($Recordset2);
if($rows > 0) {
mysql_data_seek($Recordset2, 0);
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
}?>
}
var sel = document.getElementById(list);
for(var i = 0; i < listp.length; i++){
var opt = document.createElement('option');
opt.value = listp[i];
opt.text = listp[i];
opt.innerHTML = listp[i];
sel.appendChild(opt);
}
sel.selectedItem = listp[0];
alert("ciao");
}
function clear(ss){
for(var i=ss.options.length-1;i>=0;i--){
ss.options[i]=null;
}
}
</script>