- Home
- Categorie
- Coding e Sistemistica
- PHP
- Popolare un campo select con dati presenti in un DB
-
Popolare un campo select con dati presenti in un DB
Ciao Raga,
ho creato una tabella database mysql di nome utenti con "id","nome","telefono","indirizzo", ho poi una form in cui è presente un campo select con label "Operatore" , vorrei fare in modo che anzichè popolare la select manualmente, lo faccia in modo dinamico, recuperando dalla tabella solo il nome, in questo modo quando aggiungo degli operatori, anziche aggiornare manualmente la select, questa operazione venga fatta in modo dinamico....ecco il codice della select attualmente presente
[PHP]
<label >Operatore</label> </td>
<td class="right" ><select name="nomi">
<option></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select></td>
[/PHP]Faccio presente che prima di aprire un nuovo post, ho dato un'occhiata in giro per il form, solo che non sono riuscito a trovare nulla che faccia al caso mio o meglio che io riuscissi a comprendere :?, pertanto mi scuso fin da ora con i moderatori.
Thanks!
-
Prova in questo modo:
[php]
// Connessione MySQL ...
$to_stamp = "";
while($riga = mysql_fetch_assoc($risultato_query))
{
$to_stamp .= "<option>" . $riga["valore"] . "</option>";
}
[/php]Nel codice html metti:
[php]
<select name="nomi">
<?php echo $to_stamp; ?>
</select>
[/php]Ciao!
-
Ciao, grazie per la risposta,
quindi se ho capito bene posso fare in questo modoinclude ("conn.php"); $to_stamp = ""; while($riga = mysql_fetch_assoc($risultato_query)) { $to_stamp .= "<option>" . $riga["valore"] . "</option>"; } <label >Operatore</label> </td> <td class="right" ><select name="nomi"> <?php echo $to_stamp; ?> </select>
scusa ma alla fine di ...
while($riga = mysql_fetch_assoc($risultato_query))
... non devo mettere il punto e virgola ?
Thanks!
-
Ciao,
non devi mettere il punto e virgola alla fine della riga che hai indicato altrimenti non viene eseguita la parte di codice che il ciclo deve ripetere ad ogni passaggio, ovvero
[php]
{
$to_stamp .= "<option>" . $riga["valore"] . "</option>";
}
[/php]
La prima parte di codice che ti ha indicato **Sups **ricordati di inserirla all'interno dei tag php
[php]
<?php //qui il codice ?>
[/php]Ti consiglio di inviare tramite la select, non il nome (che potrebbe essere ambiguo in caso di omonimia), ma l'eventuale id unico del record sul database.
E' sufficiente questa modifica:
[php]
{
$to_stamp .= "<option value="".$riga["id"]."">" . $riga["valore"] . "</option>";
}
[/php]Alessandro
-
Ciao,
allora se ho ben capito il codice verrebbe cosi<?php include ("conn.php"); $to_stamp = ""; while($riga = mysql_fetch_assoc($risultato_query)) { $to_stamp .= "<option value=\"".$riga["id"]."\">" . $riga["valore"] . "</option>"; } <label >Operatore</label> </td> <td class="right" ><select name="nomi"> ?> <?php echo $to_stamp; ?> </select>
Ci sono quasi ?
-
Lo script php devi chiuderlo prima di <label>, subito dopo la chiusura della parentesi graffa del ciclo while, non dopo il tag <select ...>.
Ovviamente $risultato_query dovrà contenere il risultato della query di ricerca che in quel codice ancora non c'è
-
Ci sono, dovrebbe essere ok...
<?php include ("conn.php"); $to_stamp = ""; while($riga = mysql_fetch_assoc($risultato_query)) { $to_stamp .= "<option value=\"".$riga["id"]."\">" . $riga["valore"] . "</option>"; } ?> <label >Operatore</label> </td> <td class="right" ><select name="nomi"> <?php echo $to_stamp; ?> </select>
un'altra cosa lo slash dopo ```
"<option value=""lo devo mettere cosi com'è mentre qui ``` ["valore"]
devo indicare il nome del campo?
E' corretto.
Grazie di cuore per le celeri risposte.
-
Salve a tutti,
So ch ela discussione è leggermente vecchiota. Ma essendo nuovo non so dove postare. Parto ocn il problemone. Allora devo compilare una select dove purtroppo non si può fare prima una lista completa. Mi spiego meglio. Ho un campo denominato componente. Siccome i componenti sono a migliaia non posso fare una lista, quindi mi trovo costretto a dover compilare a mano se non è prensete il componente. Ad esempio, la lista attualmente è vuota, digito il nome della rivista e tutti i dati che mi si richiedono arrivo alla voce componenti e come componente ho un k800 (inventato lì per lì per fare l'esempio). Questo k800, potrebbe essere presente nella lista come non potrebbe non esserlo. Allora se non esiste nella lista, visto ch eabbiamo detto che la lista è vuota, lo devo digitare tramite un input e successivamente memorizzarlo nel db. Ovviamente avrò due tabelle. Una con i campi relativi alla rivista e l'altra idcomponenti, descrizione. Mi potreste aiutare per favore ???? Posso postare un codice ma questo ahime non va. o meglio funziona la 50%. Ecco i file:
Il primo si chiama aggiungi.php:
[PHP]
<?php
require_once("connetti.php");
//require_once("paginaprotetta.php");
require_once("presenta.php");if(!isset($_POST['submit']))
{
echo "<form action='' method='POST' enctype='multipart/form-data'>
<br> <br> <br> <br>
Rivista: <input type='text' name='rivista' /> <br> <br>
Anno: <input type='text' name='anno' /> <br> <br>
Numero <input type='text' name='numero' /> <br> <br>
Pagina: <input type='text' name='pagina' /> <br> <br>
Titolo: <input type='text' name='titolo' /> <br> <br>
Categoria: "; //ccreo il select delle categorie con un option preimostato di valore nullo
echo"<select name='categoria'><option value=''>Nessuna</option>";
//gli altri option che seguiranno dovranno essere presi dalla tabella dove sono salvati tutte le varie categorie
//seleziono il contenuto della tabella tblcategoria
$listacat=mysql_query("SELECT * FROM tblcategoria");
//mostro il contenuto presente nel campo descrizione che sarà il nome della categooria
while($rowcat=mysql_fetch_array($listacat)){
echo "<option value='".$rowcat['descrizione']."'>".$rowcat['descrizione']."</option>";
}
//se non presente creiamo un tag button che se lo cliccheremo apparirà il tag span con l'input text
echo"</select><br/>
<br>
Non è presente la categoria della tua rivista? <button onclick='toggle()'>Creala ora</button>
<span>
Nuova categoria: <input type='text' name='categoria_nuova'>
</span>
<br> <br>
Componenti: <input type='text' name='componenti' /> <br> <br>Immagine 1: <input name='immagine1' type='file' /> <br> <br> Immagine 2: <input name='immagine2' type='file' /><br> <br> Immagine 3: <input name='immagine3' type='file' /> <br> <br> Immagine 4: <input name='immagine4' type='file'/> <br> <br> Immagine 5: <input name='immagine5' type='file' /><br> <br> <input name='submit' type='submit' value='Salva' /> </form>
";
}
else
{
$rivista = mysql_real_escape_string ($_POST['rivista']);//QUA CREI LE TUE VARIABILI RIGUARDO AL FORM $anno = mysql_real_escape_string ($_POST['anno']); $numero = mysql_real_escape_string ($_POST['numero']); $pagina = mysql_real_escape_string ($_POST['pagina']); $titolo = mysql_real_escape_string ($_POST['titolo']); $fbcategoria = mysql_real_escape_string ($_POST['fbcategoria']); $componenti = mysql_real_escape_string ($_POST['componenti']); //$fbcategoria= mysql_real_escape_string ($_POST['fbcategoria']); //CREO LE VARIABILI PER I FILE FILES['nomecampo']['tipo'] $img1=$_FILES['immagine1']['name']; $tmp1=$_FILES['immagine1']['tmp_name']; $img2=$_FILES['immagine2']['name']; $tmp2=$_FILES['immagine2']['tmp_name']; $img3=$_FILES['immagine3']['name']; $tmp3=$_FILES['immagine3']['tmp_name']; $img4=$_FILES['immagine4']['name']; $tmp4=$_FILES['immagine4']['tmp_name']; $img5=$_FILES['immagine5']['name']; $tmp5=$_FILES['immagine5']['tmp_name']; //SPOSTO LE IMAMGINI NELLA LORO CARTELLA $dir='foto/'; $move1=move_uploaded_file($tmp1 , $dir.$img1); $move2=move_uploaded_file($tmp2 , $dir.$img2); $move3= move_uploaded_file($tmp3 , $dir.$img3); $move4= move_uploaded_file($tmp4 , $dir.$img4); $move5= move_uploaded_file($tmp5 , $dir.$img5); //FACCIO UN COTROLLINO CHE HANNO FUNZIONATO if($move1 || $move2 || $move3 || $move4 || $move5) { //controllo il valore di rivista che non sia nullo if(!EMPTY($rivista)) { //CREO UN ECO PER MOSTRARTI COSA STAI PER SALVARE echo "STAI PER CARICARE QUESA RIVISTA:<br/><br/> Nome rivista: $rivista <br/> Anno: $anno <br/> Numero: $numero <br/> Pagina: $pagina <br/> Titolo: $titolo <br/> Categoria: $categoria <br/> Componenti: $componenti <br/> <img src='".$dir.$img1."' style='width:100px; height:80px; padding:9px; background:#c1c1c1'> <img src='".$dir.$img2."' style='width:100px; height:80px; padding:9px; background:#c1c1c1'> <img src='".$dir.$img3."' style='width:100px; height:80px; padding:9px; background:#c1c1c1'> <img src='".$dir.$img4."' style='width:100px; height:80px; padding:9px; background:#c1c1c1'> <img src='".$dir.$img5."' style='width:100px; height:80px; padding:9px; background:#c1c1c1'> <br/> <form action='insert.php' method='POST'> <input type='hidden' name='rivista' value='$rivista'> <input type='hidden' name='anno' value='$anno'> <input type='hidden' name='numero' value='$numero'> <input type='hidden' name='pagina' value='$pagina'> <input type='hidden' name='titolo' value='$titolo'> <input type='hidden' name='categoria' value='$categoria'> <input type='hidden' name='componenti' value='$componenti'> <input type='hidden' name='img1' value='$dir$img1'> <input type='hidden' name='img2' value='$dir$img2'> <input type='hidden' name='img3' value='$dir$img3'> <input type='hidden' name='img4' value='$dir$img4'> <input type='hidden' name='img5' value='$dir$img5'> <br> <br> <center> Vuoi salvare questa rivista? <input type='submit' name='salva' value='Salva'><input type='submit' name='no' value='Non salvare'></form> </br> </br> </center> "; } else { //altrimenti dò un messsaggio di errore echo "<script>alert('Il cammpo del nome della rivista è vuoto!');</script>"; } } else { echo "<script>alert('I file non sono stati caricati');</script>"; }
}
?>
[/PHP]Il secondo invece si chiama inser.php e questo funziona al 50%
[PHP]
<?php
//INSERISCI INCLUDErequire_once("connetti.php");
//require_once("paginaprotetta.php");
require_once("presenta.php");//Richiama le variabili degli input hidden
$rivista=$_POST['rivista']; $anno=$_POST['anno']; $numero=$_POST['numero']; $pagina=$_POST['pagina']; $titolo=$_POST['titolo']; $categoria=$_POST['categoria']; $componenti=$_POST['componenti']; $nuovacategoria= $_POST['nuovacategoria']; $immagine1=$_POST['img1']; $immagine2=$_POST['img2']; $immagine3=$_POST['img3']; $immagine4=$_POST['img4']; $immagine5=$_POST['img5'];
if(isset($_POST['salva']))
{
//QUA TUTTE LE TUE VARIABILI con anche $nuovacategoria//SE PREMO SU SALVA MI INSERISCE I VALORI NELA TABELLA
if($fbcategoria=='')
{
$fbcategoria = $nuovacategoria;$sql = "INSERT INTO tblrivista (`rivista`, `anno`, `numero`, `pagina`, `titolo`, `fbcategoria`, `componenti`, `immagine1`, `immagine2`, `immagine3`, `immagine4`, `immagine5`) VALUES('$rivista' , '$anno' , '$numero' , '$pagina' , '$titolo' , '$fbcategoria' , '$componenti' , '$immagine1','$immagine2','$immagine3','$immagine4','$immagine5')"; mysql_query($sql) or die(mysql_error()); echo "<script>alert('Rivista creata con successo!');</script>";
}
elseif ($fbcategoria !='' && $nuovacategoria == '')
{
$sql2 = "INSERT INTO tblcategoria (descrizione) VALUES('$descrizione')";mysql_query($sql2) or die (mysql_error()); echo "<script>alert('categoria aggiunta alla lista con successo!');</script>"; }
}
?>
[/PHP]Spero di ricevere un vostro suggerimento grazie.