Estrarre dati da una select HTML

maxus68

Utente Attivo
1 Nov 2016
23
0
1
51
Ciao a tutti,
sto aiutando mio figlio a scrivere in piccolo programma da utilizzare a scuola e ho la necessità di estrarre un dato da una select HTML.
Mi spiego meglio:
la select è popolata tramite stringa sql che prende i record da un database e fin li tutto ok
Il codice è il seguente:
PHP:
<form name="argomento" action="" method="post">
<select name="elenco_ragionesociale">
<?php
    $sql = "SELECT * FROM tbl_anagrafica_contatti ORDER BY RagioneSociale ASC;";
    $risultato = mysqli_query ($conn, $sql);
    while ($riga = mysqli_fetch_array($risultato))
    {
    echo "<option value='".$riga['IDContatto']."'";
    echo "> ".$riga['RagioneSociale']."</option>\n";
    $io= $_POST['elenco_ragionesociale'];           
    }               
?>
</select>
<input type="submit" name="vai" value="go">
</form>
La variabile $io prende il dato della Select riferito al IDContatto, io avrei bisogno però di mettere in una altra variabile anche il nome della Ragione Sociale associata al IDContatto.

Come posso fare?

Grazie per l'aiuto

Massimo
 

marino51

Utente Attivo
28 Feb 2013
2.912
162
63
Lombardia
ciao massimo,
il tuo script funziona in 2 passi,
il primo visualizza il form e non può gestire $io perché ancora non esiste
il secondo, dopo "submit", visualizza ancora il form e può gestire $io perché ora esiste, ottenendo $_POST dal form
ti suggerisco di separare i due passi e di aggiungere la seconda variabile nel "value" (nell'esempio ho ripetuto la stessa)
se non é chiaro fatti vivo
PHP:
<form name="argomento" action="" method="post">
<select name="elenco_ragionesociale">
<?php
    $sql = "SELECT * FROM tbl_anagrafica_contatti ORDER BY RagioneSociale ASC;";
    $risultato = mysqli_query ($conn, $sql);
    while ($riga = mysqli_fetch_array($risultato))
    {
        echo "<option value='".$riga['IDContatto']."--".$riga['IDContatto']."'";
        echo "> ".$riga['RagioneSociale']."</option>";
    }              
?>
</select>
<br /><br />
<input type="submit" name="vai" value="go">
<br /><br />
</form>
<?php
if (isset($_POST){
    $io= explode("--", $_POST['elenco_ragionesociale']);
    echo $io[0]; // elenco_ragionesociale
    echo $io[1]; // secondo elemento
}
?>
ps, non l'ho provato spero che la sintassi sia corretta
 

maxus68

Utente Attivo
1 Nov 2016
23
0
1
51
Ciao Marino,
che dire grazie mille per l'esempio che funziona ma anche per la spiegazione molto chiara.
Già che ci sono ti chiedo se mi puoi consigliare un libro su PHP che possa aiutarmi a colmare le lacune che ho.

Grazie

Massimo


ciao massimo,
il tuo script funziona in 2 passi,
il primo visualizza il form e non può gestire $io perché ancora non esiste
il secondo, dopo "submit", visualizza ancora il form e può gestire $io perché ora esiste, ottenendo $_POST dal form
ti suggerisco di separare i due passi e di aggiungere la seconda variabile nel "value" (nell'esempio ho ripetuto la stessa)
se non é chiaro fatti vivo
PHP:
<form name="argomento" action="" method="post">
<select name="elenco_ragionesociale">
<?php
    $sql = "SELECT * FROM tbl_anagrafica_contatti ORDER BY RagioneSociale ASC;";
    $risultato = mysqli_query ($conn, $sql);
    while ($riga = mysqli_fetch_array($risultato))
    {
        echo "<option value='".$riga['IDContatto']."--".$riga['IDContatto']."'";
        echo "> ".$riga['RagioneSociale']."</option>";
    }             
?>
</select>
<br /><br />
<input type="submit" name="vai" value="go">
<br /><br />
</form>
<?php
if (isset($_POST){
    $io= explode("--", $_POST['elenco_ragionesociale']);
    echo $io[0]; // elenco_ragionesociale
    echo $io[1]; // secondo elemento
}
?>
ps, non l'ho provato spero che la sintassi sia corretta