Originariamente inviata da
KillerWorm
Ciao, credo tu stia facendo un po' di confusione nella gestione degli eventi
change.
Se utilizzi jQuery puoi escludere il richiamo della funzione con l'attributo
onchange, che hai scritto in questa riga:
codice:
<select id="sondaggio'.$dati_sondaggio1[id_sond].'" onchange="showDiv()">
Puoi invece usare giusto il metodo jQuery
change(), cos� come hai indicato dentro la funzione stessa, ma anche senza specificare una funzione
showDiv. In tal caso, il callback del metodo
change(), � gi� di suo la funzione che viene richiamata, appunto, al
change dell'elemento
select.
Ora, se hai pi�
select da gestire, ti suggerisco di utilizzare una classe in modo da poterli "selezionare" attraverso un semplice selettore jQuery.
Nel tuo PHP avrai quindi una cosa del genere:
codice:
<select id="sondaggio'.$dati_sondaggio1[id_sond].'" class="showdivonchange">';
Per recuperare, con jQuery, l'
id dell'elemento
option selezionato, puoi fare in vari modi.
Basta una semplice ricerca
https://www.google.it/?gws_rd=ssl#q=...uery+id+option
Chiaramente una volta recuperato l'
id avrai una cosa tipo
"attributoN", da cui dovrai recuperare quel valore
N per poterlo combinare invece con il testo
"contenuto", che former� l'
id del relativo
div da visualizzare. Puoi usare una cosa come
substr() o funzioni simili.
Il tuo jQuery potrebbe essere impostato in questo modo:
codice:
$(".showdivonchange").change(function() {
var id = $(">:selected", this).attr("id").substr(9);
$("#contenuto"+id).attr("style", "display:block");
});
Questo non fa altro che mostrare il relativo
div.
Se devi per� nascondere anche gli eventuali
div aperti in precedenza, ti consiglio di usare una classe (anzich� il css in linea) per la quale il
div sar� visibile, quindi rimuoverla opportunamente dall'elemento a cui era stata applicata in precedenza, prima di riassegnarla al nuovo elemento.