Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344

    jQuery e select dinamiche

    Ho cercato sia nel forum che in rete ma non ho trovato una soluzione semplice e funzionale da adottare per popolare una seconda select dopo la scelta della prima.

    Considerando che ho jQuery (e che preferisco utilizzare per non fare cose miste) caricato e che il codice per popolare le select è questo:

    codice:
    	
    <div>
      <label for="slcPrima" title="">Prima</label>
      <select id="slcPrima" name="id_prima">
        <option value="0" selected="selected">Seleziona</option>
        <?php 
        // Recupera i dati e popola la select
        $result = mysql_query("SELECT * FROM tbl_prima");
        while ($riga = mysql_fetch_array($result)) {
          $tmpIdPrima = $riga['id_prima'];
          $tmpPrima = $riga['prima'];
          echo "<option value=\"$tmpIdPrima \">$tmpPrima</option>";
        }             
        ?>
      </select>
    </div>
    <div>
      <label for="slcSeconda" title="">Seconda</label>
      <select id="slcSeconda" name="id_seconda">
        <option value="0" selected="selected">Seleziona</option>
        <?php 
        // Recupera i dati e popola la select
        $result = mysql_query("SELECT * FROM tbl_seconda");
        while ($riga = mysql_fetch_array($result)) {
          $tmpIdSeconda = $riga['id_seconda'];
          $tmpSeconda = $riga['seconda'];
          echo "<option value=\"$tmpIdSeconda \">$tmpSeconda</option>";
        }             
        ?>
      </select>
    </div>
    Qualcuno può darmi qualche suggerimento su come agire al fine di non ricaricare la pagina?
    Grazie

  2. #2
    Con $.get()

    http://api.jquery.com/jQuery.get/

    Dovresti chiamare una pagina php che fa la query in base all'id scelto (al onChange credo), e poi usare l'output della pagina per popolare le nuova select.

    Non so se esiste qualche plugin per fare la cosa in maniera più automatica.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Avevo visto proprio quello.

    La domanda è: con questo metodo una volta che attivo il Get di jQuery mi ritrovo la pagina come se richiamassi di fatto:

    pagina.php?parametro=numero

    Quindi sarebbe sufficiente recuperare 'parametro' per costruire la select secondaria?

  4. #4
    Una volta chiamato ritrovi come data quello che stampi nella pagina php

    se fai
    codice:
    echo "pippo";
    in Jquery leggerai pippo. Quindi sta a te creare un output in base al parametro che invii e poi lavorarlo in jquery.
    Puoi fare con le stringhe o con l'xml o come preferisci.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Dato che al momento è troppo complesso ho optato per una cosa più semplice.

    La seconda select viene creata sfruttando un $_get in query sull'indirizzo per cui all'onchange della prima select richiamo la pagina lato server con il parametro aggiuntivo.

    Quello che però non funziona è che al posto del parametro passa la il testo:

    $('#slcPrmTipi').change(function() {
    var str = "";
    $("select option:selected").each(function () {
    str = $(this).text();
    });
    window.open("permessi_richiesta.php?id_tipo="+str, '_self');
    })

    In pratica quando la prima select cambia vado a caricare la stessa pagina con id_tipo passato in query. Il problema è che str non prende il value della option.

    Dove sbaglio?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.