- Home
- Categorie
- Coding e Sistemistica
- PHP
- Pulsante "seleziona (elenco/menu)" con dati presi da database
-
Quindi una ID chiave primaria auto-incrementale? Quella sì l'ho messa
Il problema è che nella pagina1.php ho il menù a tendina con i vari nomi.[PHP]
<?php include("conn.php"); ?>
<form id="form1" name="form1" method="post" action="a.php">
<input type="submit" name="submit" id="submit" value="Procedi" />
</form>
Condominio:
<SELECT name="nomi" size="">
<?php
$risultato=mysql_query("select id, nome from utenti", $conn);
if (!$risultato)
{
die("La tabella selezionata non esiste " . mysql_error());
}while ($riga=mysql_fetch_array($risultato)) { $campo1 = $riga['id']; $campo2 = $riga['nome']; echo "<option value=\"".$riga["nome"]."\">".$riga["nome"]."</option>"; } ?>
</SELECT>
?>
<?php include("close.php"); ?>
[/PHP]Seleziono il nome che desidero, clicco sul pulsante "Procedi" e arrivo alla pagina2.php dove ho:
[PHP]<?php
if(isset($_POST["submit"]))
{
$zz= $riga['nome'];
$yy = $riga['id'];
echo $zz;
echo $yy;
}
?>[/PHP]Perché non mi stampa niente? Come faccio a passare una informazione all'altra pagina? Ecco perché ti chiedevo se era utile dare ad ogni nome un valore che potesse finire nell'url, così nella seconda pagina mettevo un $_GET e ricavavo le informazioni
-
L'invio del form ti spedisce il nome che ti ritrovi in $_POST['nomi'], la variabile $riga non esiste nella seconda pagina.
-
Ok, ma allora nella seconda pagina nel ciclo if cosa ci metto per richiamare i valori 'nome' e 'id'?
[PHP]
if(isset($_POST["nomi"]))
{
}
[/PHP]
-
Non funziona cosi, un select del modulo ti fà inviare un valore.
Se tu hai:
[php]
echo "<option value="".$riga["nome"]."">".$riga["nome"]."</option>";
[/php]
E $riga["nome"] ha come valore TheDarkITA, quando invii il modulo ti ritrovi $_POST["nomi"] uguale a TheDarkITA.
-
Svelato l'arcano: come si vede nel post #6 ho chiuso male il form </form> che va a fine pagine, ecco perché non riusciva nulla! XD
Grazie per i suggerimenti
-
Domanda sempre collegata: quando nella seconda pagina io ricavo i dati grazie al [PHP]$_POST[/PHP] ricevo l'unico valore compreso nella stringa:
[PHP]echo "<option value="".$riga["nome"]."">".$riga["nome"]."</option>";[/PHP]
Se io volessi ad esempio passare **insieme ** al "nome" anche un altro valore, tipo l'ID, devo per forza fare un'altra query select? Tenendo conto che questo valore ID però non deve essere visibile a tutti.
-
Solitamente si passa solo l'id, in quanto ad ogni ID è associato un nome, o anche più valori che si recuperano nella seconda pagina con una query.
Anche perchè devi controllare che non siano stati manomessi gli input.
-
Sì ma se andassi a modificare questa linea:
[PHP]echo "<option value="".$riga["nome"]."">".$riga["nome"]."</option>"; [/PHP]
cambiandola in questa:
[PHP]echo "<option value="".$riga["id"]."">".$riga["id"]."</option>"; [/PHP]
Poi nel menù a tendina comparirebbero solo gli id!
-
Esiste la via di mezzo
[php]
echo "<option value="".$riga["id"]."">".$riga["nome"]."</option>";
[/php]
-
Geniale