Sempre io!
![]()
Ho una tabella strutturata con 2 campi:
IDCATEGORIA
NOMECATEGORIA
In una select visualizzo i nomi delle categorie.
Ora cè un modo che tramite una submit mi visualizzi in una casella di testo l'IDCATEGORIA corrispondente? ...![]()
Sempre io!
![]()
Ho una tabella strutturata con 2 campi:
IDCATEGORIA
NOMECATEGORIA
In una select visualizzo i nomi delle categorie.
Ora cè un modo che tramite una submit mi visualizzi in una casella di testo l'IDCATEGORIA corrispondente? ...![]()
Basta che imposti le option mettendo come value l'id della categoria.
echo "<option value=\"$id_categoria\">$nome_categoria</option>";
Quando recuperi il valore ne fai ciò che vuoi, compreso visualizzarlo in un campo di testo.
$id = $_POST['nome_select'];
<input type="text" name="nome" value="<?php echo $id_categoria ?>">
...
Dunque... fammi capire bene:
nella select le option che io ho sono i nomi delle categorie:
Ora con il submit, in una casella di testo mi deve uscire l'IDCATEGORIA corrispondente!Codice PHP:
echo "<form method='post' action=''>";
echo "<select name='nomecategoria'>";
$risultato = mysql_query ("SELECT nomecategoria FROM categorie ORDER BY idcategoria");
while ($row = mysql_fetch_array($risultato,MYSQL_ASSOC))
{
$valore=$row["nomecategoria"];
echo "<option value='$valore'>".$valore."</option>";
}
mysql_free_result($risultato);
echo"</select>";
echo "<input type=\"submit\" value=\"Visualizza\">";
echo"</form>";
A questo punto nella pagina che riceve i dati, ad esempio pagina.php faiCodice PHP:
<?php
echo "<form method=\"post\" action=\"pagina.php\">";
echo "<select name=\"nomecategoria\">";
$risultato = mysql_query("SELECT idcategoria, nomecategoria FROM categorie ORDER BY idcategoria");
while ($row = mysql_fetch_assoc($risultato))
{
$id = $row['idcategoria'];
$valore=$row["nomecategoria"];
echo "<option value=\"$id\">$valore</option>";
}
echo"</select>";
echo "<input type=\"submit\" value=\"Visualizza\">";
echo"</form>";
?>
$id = $_POST['nomecategoria'];
e recuperi l'id relativo alla categoria che hai scelto.
Se poi questo id lo vuoi visualizzare dentro una casella di testo non devi far altro che "echarlo"
<input type="text" name="idscelto" value="<?php echo $id ?>">
Dovrebbe andare. Fammi sapere.![]()
EDIT:
Funziona tutto!
Grazie mille
Non riesco a capire solo alcune cosette:
Funziona tutto. Ma mi da alcune notice: al codice:
Codice PHP:
/*Select per visulazzire le categorie inserendo automaticamente nella casella di testo l'id della categoria*/
echo "<form method='post' action=''>";
echo "<select name='nomecategoria'>";
$risultato = mysql_query ("SELECT idcategoria, nomecategoria FROM categorie ORDER BY idcategoria");
while ($row = mysql_fetch_array($risultato,MYSQL_ASSOC))
{
$id = $row['idcategoria'];
$valore=$row["nomecategoria"];
echo "<option value='$id'>".$valore."</option>";
}
mysql_free_result($risultato);
echo"</select>";
echo "<input type=\"submit\" value=\"Visualizza\">";
echo"</form>";
/* FINE*/
Qualcuno sa spiegarmi xche?Codice PHP:
$id = $_POST['nomecategoria']; /*QUI MI DA Notice: Undefined index: nomecategoria */
echo"<form method='post' action='' >";
echo"<table celpadding='0' celspacing='0' border='1' align='center'>";
echo "<TR><TD align='right'><label>Numero Categoria:</label></TD><TD> <input type='text' name='idcategoria' size='5'
value='$id'>
</TD></TR>";
echo "<TR><TD align='right'><label>Marca:</label></TD><TD> <input type='text' name='marca' size='30'/>
</TD></TR>";
echo "<TR><TD align='right'><label>Descrizione:</label></TD><TD> <input type='text' name='descrizione' size='30'/>
</TD></TR>";
echo "<TR><TD align='right'><label>Prezzo:</label></TD><TD> <input type='text' name='prezzo' size='10'/>
</TD></TR>";
echo"<TR><TD align='center' colspan='2'><input type='submit' value='Inserisci' /></TD></TR>";
echo "</table>";
echo"</form>";
/*Inserimento nel database*/
$numcat = $_POST['idcategoria'];
$marc = $_POST['marca'];
$descr = $_POST['descrizione'];
$prez = $_POST['prezzo'];
/*qui mi da:Notice: Undefined index: idcategoria
Notice: Undefined index: marca
Notice: Undefined index: descrizione
Notice: Undefined index: prezzo */
if ((!$numcat) || (!$marc) || (!$descr) || (!$prez))
echo "Vuota!
";
else{
$cat = "INSERT INTO merce VALUES ('', '$numcat' , '$marc' , '$descr' , '$prez')";
echo "
";
mysql_query ($cat)
or die ("Non riesco");
}
Non ho capito cosa stai facendo. Sono due pagine separate? Se sì quella che tu hai iniziato con $id = $_POST['nomecategoria']; deve ricevere l'id dalla select della pagina precedente (almeno è ciò che avevi chiesto), dove io avevo aggiunto l'action al form e tu invece hai tolto.![]()
Non sono 2 pagine separate. E' tutto di seguito all'altro proprio come ho postato.
Praticamente compare una select con tutti nomi delle categorie. Selezionata la categoria si aggiunge automaticamente in un campo testo (nome categorial'id della categoria (del menu a tendina). Poi gli altri campi di testo li aggiungo a mano e infine il tutto viene messo nella tabella merce.
Allora due form nella stessa pagina non hanno senso (per giunta senza alcuna action e
$id = $_POST['nomecategoria']; e normale che non ti restituisca niente visto che non hai inviato ancora nessun dato.
Unisci la select con gli altri campi del form e una volta che li hai inviati ad un'altra pagina allora recuperi i rispettivi valori (cioè quelli qua sotto).
$numcat = $_POST['idcategoria'];
$marc = $_POST['marca'];
$descr = $_POST['descrizione'];
$prez = $_POST['prezzo'];