Inserire variabile nella value di una Hidden

di il
5 risposte

Inserire variabile nella value di una Hidden

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:

<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

5 Risposte

  • Re: Inserire variabile nella value di una Hidden

    Non è molto chiaro, potresti dirmi :
    1) che nome ha il file php dove si trova il form?
    2) la select viene popolata ?
    3) scheda_atleta.php come cattura il dato dalla select dopo il submit ? ($id_atleta = $_POST['atleta'])
  • Re: Inserire variabile nella value di una Hidden

    Solo dopo aver selezionato/inviato il valore di option sarà presente (inviato con metodo POST e creata la variabile $_POST automaticamente) il dato della select con nome atleta altrimenti il dato è già presente in $riga['id_nominativo'] e dovrebbe anche essere univoco poiché suppongo usi esattamente un ID diverso per ogni atleta (significa il while non è idoneo per questo caso ma dovrebbe usare il limit 1 dello standard sql "anche per mysql"), altresì metta in cima al suo script per leggere gli errori
    error_reporting(-1);
    Dovrebbe anche inserire
    session_start();
    prima di qualsiasi output (sorgente html, ritorni a capo o comunque prima di echo, var_dump o similari.) per recuperare la sua sessione in uso.
  • Re: Inserire variabile nella value di una Hidden

    ninja72 ha scritto:


    Non è molto chiaro, potresti dirmi :
    1) che nome ha il file php dove si trova il form?
    2) la select viene popolata ?
    3) scheda_atleta.php come cattura il dato dalla select dopo il submit ? ($id_atleta = $_POST['atleta'])
    1) Il nome del file dove si trova il form si chiama menu.php.
    2) la select viene popolata in modo corretto
    3) $idnom=$_POST['id_nome']
  • Re: Inserire variabile nella value di una Hidden

    Hormus ha scritto:


    Solo dopo aver selezionato/inviato il valore di option sarà presente (inviato con metodo POST e creata la variabile $_POST automaticamente) il dato della select con nome atleta altrimenti il dato è già presente in $riga['id_nominativo'] e dovrebbe anche essere univoco poiché suppongo usi esattamente un ID diverso per ogni atleta (significa il while non è idoneo per questo caso ma dovrebbe usare il limit 1 dello standard sql "anche per mysql"), altresì metta in cima al suo script per leggere gli errori
    error_reporting(-1);
    Dovrebbe anche inserire
    session_start();
    prima di qualsiasi output (sorgente html, ritorni a capo o comunque prima di echo, var_dump o similari.) per recuperare la sua sessione in uso.
    Ma il while lo devo usare perchè devo popolare la select con tutti i nominativi.
    Si id_nominativo è unico ovviamente.
    La session_start mi ero dimenticato di inserirla...

    Grazie
  • Re: Inserire variabile nella value di una Hidden

    Bene adesso so che $_SESSION['clas'] è un un'identificativo di gruppo riferito appunto per una classe.. svista mia mi perdoni.
    Il browser potrà inviare soltanto un singolo option cioè l'elemento che ha il focus (attribuito selected in html), lei inizialmente imposti qualcosa come preselezionato oppure il primo dato e poi sarà sua facolta scegliere quale nominativo inviare e successivamente dovrà essere questo l'elemento preselezionato e ovviamente sarà anche il valore dell'input hide ($_POST['atleta'] esiste solamente quando inviato dal form altrimenti è NULL e la funzione echo è su valori stringa, var_dump ognicosa).
    Quindi dovrebbe adattare l'attributo selected e un controllo quando inviato $_POST['atleta'].
    "SELECT nominativo, classe FROM tbl_atleti WHERE id_nominativo = '" . $aaa . "'";
    Il codice con la logica da me descritta è corretto, non riesco a replicare il suo errore.
    Ricordo che anche una sequenza numerica se circondata da apici sarà trattata come stringa anche da mysql per la clausola where.
Devi accedere o registrarti per scrivere nel forum
5 risposte