Inserire variabile nella value di una hidden

maxus68

Utente Attivo
1 Nov 2016
23
0
1
51
Ciao a tutti,
ho ancora poca dimestichezza con il php.
Ho creato una dropdown list dalla quale estraggo un ID.
Questo ID mi serve per aprire una pagina nuova dove visualizza solo il record con l'ID selezionato

In sostanza il codice è questo:

PHP:
<form action="scheda_atleta.php" method="post">
        <table>
            <tr>
                <td>Atleta</td>
            </tr>
            <tr>           
            <td><select name="atleta">
                <?php
                    $query="SELECT id_nominativo, nominativo FROM tbl_atleti WHERE classe = '" . $_SESSION['clas'] . "'";
                    $risultato=mysqli_query($conn, $query);
                    while ($riga=mysqli_fetch_assoc($risultato))
                                
                {
                    echo "<option value='". $riga['id_nominativo']."'";
                    echo "> ".$riga['nominativo'] . "</option>\n";
                    
                }
                $aaa = $_POST['atleta'];           
                ?>
                </select></td></tr>
            <tr>
                <input type="hidden" name="id_nome" value="<?php echo $aaa;?>">
                <td><input type="submit" name="goto" value="Scheda atleta"></td>
            </tr>
            <tr>
                <td><?php echo $aaa;?></td>
            </tr>
        </table>
    </form>
Il problema sta nella value nel senso che se all'interno inserisco un numero es. 2 la scheda atleta si apre correttamente sul record ID 2, mentre lasciando il codice la scheda si apre vuota.
L' ID viene preso in modo corretto perchè se la action della form la lascio vuota mi stampa a video l'ID selezionato.
Io credo sia un errore di sintassi nella value, ma ho fatto mille prove ma non ne vengo a capo.

Grazie per l'aiuto

Massimo
 

macus_adi

Utente Attivo
5 Dic 2017
1.265
82
48
IT/SW
Scusa la domanda... Non conviene utilizzare direttamente il valore della select???
Personalmente farei coì:

PHP:
$query="SELECT id_nominativo, nominativo FROM tbl_atleti WHERE classe = '" . $_SESSION['clas'] . "'";
                    $risultato=mysqli_query($conn, $query);
function createItems($data,$value='id_nominatico',$text='nominativo'){
   echo '<option value="'.$data[$value].'">'.$data[$text].'</options>';
}

echo '<select name="id_nome" required>';
while ($riga=mysqli_fetch_assoc($risultato)){
    createItems($riga);
}
echo '</select>';
echo '<input type="submit" name="goto" value="Scheda atleta">';
Questa sintassi non è affatto bella xò...
 

maxus68

Utente Attivo
1 Nov 2016
23
0
1
51
Ciao.
Grazie per la risposta, adesso funziona perfettamente.
Ma quindi quello che io ho scritto concettualmente non potrebbe mai funzionare?

Scusa la domanda... Non conviene utilizzare direttamente il valore della select???
Personalmente farei coì:

PHP:
$query="SELECT id_nominativo, nominativo FROM tbl_atleti WHERE classe = '" . $_SESSION['clas'] . "'";
                    $risultato=mysqli_query($conn, $query);
function createItems($data,$value='id_nominatico',$text='nominativo'){
   echo '<option value="'.$data[$value].'">'.$data[$text].'</options>';
}

echo '<select name="id_nome" required>';
while ($riga=mysqli_fetch_assoc($risultato)){
    createItems($riga);
}
echo '</select>';
echo '<input type="submit" name="goto" value="Scheda atleta">';
Questa sintassi non è affatto bella xò...