Visualizzazione dei risultati da 1 a 3 su 3

Hybrid View

  1. #1
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    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.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    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.

    ciao Killerworm
    grazie per la risposta... lavorer� sul tuo script, grazie mille per l'aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.