Ciao a tutti,
ho un problema particolare a cui non so porre rimedio.
Ho una pagina con molte select identiche dove un utente deve selezionare una opzione oppure un altra. Vorrei fare in modo che spunti il valore selezionato da una select, sempre identica alle altre, su tutte... come il "Seleziona Tutti" dei checkbox.
Sicuramente non mi sono spiegato bene, faccio un esempio pratico:
Select principale:
1 - Mauro
2 - Giorgia
3 - Michele
E una sfilza di altre select del tutto identiche come valori. Ora, se io selezionato Mauro nella select principale, tutte le altre select devono diventare Mauro.
Sono arrivato, secondo me, a metà strada, cioè ho risolto una parte del problema utilizzando, appunto, una funzione Javascript "Seleziona Tutti" da phpMyadmin.
ecco il codice completo:
codice:
<body>
<form name="sel" method="post" action="">
<script>
<!--//
function sel_tutti(the_form,cosa) {
var elts = (typeof(document.forms[the_form].elements['utente[]']) !='undefined')
? document.forms[the_form].elements['utente[]']
: "";
var elts_cnt = (typeof(elts.length) != 'undefined')
? elts.length
: 0;
if (elts_cnt) {
for (var i = 0; i < elts_cnt; i++) {
elts[i].selectedIndex = cosa;
} // end for
} else {
elts.selectedIndex = cosa;
} // end if... else
}
//-->
</script>
Assegna tutte le schede a:
<select name="cosa_selezionare" onChange="sel_tutti('sel',document.sel.cosa_selezionare.value);">
<option value="" selected>Seleziona</option>
<option value="1">Mauro</option>
<option value="2">Giorgia</option>
<option value="3">Michele</option>
<option value="6">Maaaaauro</option>
<option value="52">Giorgsdda</option>
<option value="4">Michesaaaaale</option>
</select>
<table width="100%" border="0">
<tr>
<td width="41%">
<div align="center">
<select name="utente[]">
<option selected>Seleziona</option>
<option value="1">Mauro</option>
<option value="2">Giorgia</option>
<option value="3">Michele</option>
<option value="6">Maaaaauro</option>
<option value="52">Giorgsdda</option>
<option value="4">Michesaaaaale</option>
</select>
</div></td>
<td width="19%"><div align="center">Non assegnare </div></td>
</tr>
<tr>
<td width="41%">
<div align="center">
<select name="utente[]">
<option selected>Seleziona</option>
<option value="1">Mauro</option>
<option value="2">Giorgia</option>
<option value="3">Michele</option>
<option value="6">Maaaaauro</option>
<option value="52">Giorgsdda</option>
<option value="4">Michesaaaaale</option>
</select>
</div></td>
<td width="19%"><div align="center">Non assegnare </div></td>
</tr>
</table>
</form>
</body>
Quindi, se provate a copiare questo codice così com'è potete verificare subito una cosa, che se io seleziono Mauro,Giorgia,Michele tutto funziona... se selezionato Maaaaauro mi seleziona Michesaaaale ... Questo perchè, nel ciclo for impostato nella funzione segue la variabile i che aumenta progressivamente.
Premetto che non sono espertissimo di javascript, ma è possibile fare questa roba quì funzionante? Cioè, invece di fare un controllo su una variabile i fare un controllo sul VALORE... perchè se al posto dei numeri (nelle option delle select) ci fossero stati dei caratteri la funzione non avrebbe dato i risultati sperati.
Spero di essere stato chiaro, è un po' complesso come problema, almeno per me. Sul forum non ho trovato nulla di simile.
Grazie 1000,
CIAUU
:metallica