Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    22

    Secondo menu a tendina dinamico che non si aggiorna in base alla selezione del primo

    Salve sono ancora qui a chiedere aiuto al forum, ho creato una pagina dove ci sono due menu a tendina, il primo è relativo all'anno, il secondo alla persone.
    Vorrei che selezionando l'anno, in automatico mi mostrasse i nomi relativi a quell'anno.
    Es.:
    2015 Pippo
    2016 Minnie
    2017 Pluto
    vorrei per esempio che selezionando l'anno 2016 nel primo menu a tendina il secondo si popolasse soltanto con Minnie, ecc....
    Ho provato ma non riesco, se gli passo l'anno direttamente (se
    AnnoSinistro='$AnnoSinistro' lo trasformo in AnnoSinistro='2016', la query funziona...ma così non va bene.
    Allego codice che utilizzo:
    Codice PHP:
    <label for="AnnoSinistro">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        Scegli il l'anno </label>
    <?php

    // ===Preparazione elenco per menu a tendina AnnoSinistro ====
      
    $Query1="SELECT *
    FROM tblsinistri
    GROUP BY AnnoSinistro
    ORDER BY AnnoSinistro"

     
           
    //esecuzione della query
                
    $Leggi_AnnoSinistro=@mysql_query($Query1) or die (mysql_error());
           if(!
    $Leggi_AnnoSinistro)
             print(
    "<H2>Query fallita!</H2>");
           else
           echo 
    "<select name='AnnoSinistro' id='AnnoSinistroid'>";//Genera casella a discesa
           
    while ($row mysql_fetch_array($Leggi_AnnoSinistro))
    {
    $AnnoSinistro $row['AnnoSinistro'];

    echo 
    "<option value =\"$AnnoSinistro\">$AnnoSinistro </option>"//Popola casella
    }

    echo 
    "value=$AnnoSinistro </select>";

     
    $_SESSION['variabile'] = $AnnoSinistro;
    //echo $_SESSION['variabile'];
    ?>


        <label for="Nominativo">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        Scegli il nominativo </label>
    <?php

    mysql_query
    ("SET CHARACTER SET utf8");
    mysql_query("SET NAMES utf8");
    function 
    removeslashes $Nominativo )
    {
    $Nominativo implode "" explode "\\" $Nominativo ));
    return 
    stripslashes trim $Nominativo ));
    }

    // ===Preparazione elenco per menu a tendina Nominativo====
        
    $Query1="SELECT *
            FROM tblverbali
            WHERE NumVerbale <> 0 AND AnnoSinistro='
    $AnnoSinistro'
            GROUP BY Nominativo
            ORDER BY Nominativo"

     
           
    //esecuzione della query
                
    $Leggi_NumVerbale=@mysql_query($Query1) or die (mysql_error());
           if(!
    $Leggi_NumVerbale)
             print(
    "<H2>Query fallita!</H2>");
           else
           echo 
    "<select name='Nominativo' id='Nominativoid'>";//Genera casella a discesa
           
    while ($row mysql_fetch_array($Leggi_NumVerbale))
    {
            
    $Nominativo=$row['Nominativo'];
            
    $Nominativo iconv('UTF-8''windows-1252'$Nominativo);
            
    $Nominativoaddslashes($row['Nominativo']);
            
    mysql_query("SET CHARACTER SET utf8");
            
    mysql_query("SET NAMES utf8");
     
            echo 
    "<option value =\"$Nominativo\">$Nominativo </option>"//Popola casella
            
    }
            
    $Nominativoaddslashes($row['Nominativo']);
            echo 
    "value=$Nominativo </select>";
    ?>
    Grazie per l'aiuto

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Queste cose si fanno con Javascript.
    Quando si sceglie un valore nella prima select devi inviare una richiesta AJAX ad uno script sul server passandogli l'anno, lo script recupera il dato, effettua la query per recuperare i nomi dal db e alla fine fa un echo di questi dati in formato JSON.
    A questo punto Javascript recupera la risposta ed usa i dati per popolare il secondo campo select.

    La parte difficile è solo quella che riguarda AJAX, quindi JS, in PHP devi solo eseguire una query, trasformare il risultato in un array JSON (c'è la funzione json_encode() che trasforma un array PHP in array JSON).

    Se hai problemi con la chiamata AJAX, chiedi nella sezione Javascript.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    22
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Queste cose si fanno con Javascript.
    Quando si sceglie un valore nella prima select devi inviare una richiesta AJAX ad uno script sul server passandogli l'anno, lo script recupera il dato, effettua la query per recuperare i nomi dal db e alla fine fa un echo di questi dati in formato JSON.
    A questo punto Javascript recupera la risposta ed usa i dati per popolare il secondo campo select.

    La parte difficile è solo quella che riguarda AJAX, quindi JS, in PHP devi solo eseguire una query, trasformare il risultato in un array JSON (c'è la funzione json_encode() che trasforma un array PHP in array JSON).

    Se hai problemi con la chiamata AJAX, chiedi nella sezione Javascript.
    ci provo perchè da solo non saprei che pesci prendere

    Grazie

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