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:
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.codice:<select id="sondaggio'.$dati_sondaggio1[id_sond].'" onchange="showDiv()">
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:
Per recuperare, con jQuery, l'id dell'elemento option selezionato, puoi fare in vari modi.codice:<select id="sondaggio'.$dati_sondaggio1[id_sond].'" class="showdivonchange">';
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:
Questo non fa altro che mostrare il relativo div.codice:$(".showdivonchange").change(function() { var id = $(">:selected", this).attr("id").substr(9); $("#contenuto"+id).attr("style", "display:block"); });
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.


Rispondi quotando