Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Select dinamico da DB

  1. #1
    Utente di HTML.it L'avatar di tommy84
    Registrato dal
    Jan 2006
    Messaggi
    109

    Select dinamico da DB

    Salve a tutti, ho un problemino, banalissimo ma non essendo ferratissimo non riesco a risolvere, ho postato in PHP perchè la mia pagiona è in php, spero di non aver sbagliato:

    Codice PHP:
    <select name="campo"> <option value="Verde">Verde</option> <option value="Rosso">Rosso</option> <option value="Arancio">Arancio</option> <option value="Lilla">Lilla</option> </select
    Semplicemente, ho questa select che mi fa selezionare uno dei campi, scriver il valore in una tabella del db in mysql, adesso:

    Siccome ho un'altra pagina php che mi da la possibilità di aggiunge tipologie di campi a quella tabella, come posso fare per implementare una select dinamica che all'aggiunta di un campo automaticamente mi metta disponibile quel campo nella tendina??

    Grazie a tutti coloro che mi daranno una mano.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Codice PHP:
    $query "SELECT * ..."// qui selezioni i tuoi campi "dinamici"
    $campi = ... // qui esegui la query e recuperi i valori in modo da averli in un vettore

    print '<select name="campo">';
    foreach (
    $campi as $campo) {
      print 
    '<option value="'.$campo.'">'.$campo.'</option>';
    };
    print 
    '</select>'

  3. #3
    Fai una query ad esempio: select colore from tabella_colori order by colore.
    dopo di che metti il risultato in un array e fai un ciclo di questo tipo.
    Supponendo che l'array si chiami colori otterrai più o meno questo:
    Codice PHP:
    $totale_colori=sizeof($colori);
    echo(
    "<select name='campo'>");
    echo(
    "<option value=''>
    "
    ); //questa riga la metti soltanto se vuoi che il menu a tendina inizi con un volore nullo e non direttamente con il primo dei colori
    for($i=0;$i<$totale_colori;$i++){
     echo(
    "<option value='$colori[$i]'>".$colori[$i]."
    "
    );
    }
    echo(
    "</select>"); 
    Spero di averti aiutato...ciao ciao

  4. #4
    Utente di HTML.it L'avatar di tommy84
    Registrato dal
    Jan 2006
    Messaggi
    109
    Grazie per la tua dritta, ho provato ad implementare qualcosa con i tuoi consigli, ma forse sbaglio qualcosa, oppure ho fatto qualhce madormale errore.

    Questo è il codice:

    Codice PHP:
    <form action="Prenotazione.php" method="post"
    <
    font color="#FF0000">*Nome</font>
     
    <
    input name="nome" type="text" size=40

    <
    font color="#FF0000">*Cognome</font>
     
    <
    input name="cognome" type="text" size=40
     
    <
    font color="#FF0000">*Campo</font>
      
    include 
    'configurazione.php'
    $campi"SELECT `Nome` FROM `campo`";
    $totale_campi=sizeof($campi); 
    echo(
    "<select name='campo'>"); 
    echo(
    "<option value=''>Seleziona qui il campo
    "
    ); 
    for(
    $i=0;$i<$totale_campi;$i++){ 
    echo(
    "<option value='$campi[$i]'>".$campi[$i]."
    "
    ); } 
    echo(
    "</select>"); ?> 
     
    type="submit" value="Invia"> </br> </form> 
    L'unica cosa che mi visualizza è una "s", ovviamente oltre a quella di default!

    Dove sto sbagliando??

    Grazie

  5. #5
    L'errore madornale è:
    Codice PHP:
    $campi = ... // qui esegui la query e recuperi i valori in modo da averli in un vettore 
    Dai il valore a $campi ma non può essere una query deve essere il risultato della query.
    Il tuo db è mysql?
    perchè nella query nome e campo sono tra apici?
    Io non mi ricordo le istruzioni utilizzate con mysql ma con quelle di racle dovresti scrivere:

    Codice PHP:
    $query=oci_parse($con,"select nome from campi order by nome");
    oci_execute($query);
    $i=0;
    while(
    $riga=oci_fetch_array($queryOCI_NUM OCI_RETURN_NULL)){
    $campi[$i]=$riga[0];
    }
    $totale_colori=sizeof($colori); 
    echo(
    "<select name='campo'>"); 
    echo(
    "<option value=''>
    "
    ); //questa riga la metti soltanto se vuoi che il menu a tendina inizi con un volore nullo e non direttamente con il primo dei colori 
    for($i=0;$i<$totale_colori;$i++){ 
     echo(
    "<option value='$colori[$i]'>".$colori[$i]."
    "
    ); 

    echo(
    "</select>"); 

  6. #6
    Utente di HTML.it L'avatar di tommy84
    Registrato dal
    Jan 2006
    Messaggi
    109
    Vero, mi son dimenticato di eseguire la query, adesso ho quasi risolto, con questo codice:

    Codice PHP:
    <?php $query=mysql_query("SELECT Nome FROM campo"); 
    while (
    $campo mysql_fetch_array($query)) { 
    $totale_campi=sizeof($campo); 
    echo(
    "<select name='campo'>"); 
    echo(
    "<option value=''>Seleziona qui il campo
    "
    ); 
    for(
    $i=0;$i<$totale_campi;$i++){ 
    echo(
    "<option value='$campo[$i]'>".$campo[$i]."
    "
    ); } 
    echo(
    "</select>"); } ?>
    Il problema che adesso mi crea N tendine quanti colori ci sono nella tabella, io vorrei che tutti i colori vegano visualizzati in una sola tendina.

    Grazie

  7. #7
    Codice PHP:
    <?php 
    echo("<select name='campo'>"); 
    echo(
    "<option value=''>Seleziona qui il campo</option>"); 
    $query mysql_query("SELECT Nome FROM campo"); 
    while (
    $campo mysql_fetch_array($query)) { 
        
    $totale_campi sizeof($campo); 
        for (
    $i 0$i $totale_campi$i++) { 
            echo(
    "<option value='$campo[$i]'>".$campo[$i]."</option>"); 
        } 

    echo(
    "</select>"); 
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it L'avatar di tommy84
    Registrato dal
    Jan 2006
    Messaggi
    109
    safital graziee 1000 adesso funziona perfettamente, solo una cosa, scusami se sono pignolo, ma forse non si può nemmeno fare, tra un colore e un altro nella tendina c'è uno spazio vuoto, in qualche modo si può eliminare e compattare la tendina???

    Grazie ancora.

  9. #9
    Codice PHP:
    <?php 
    echo("<select name='campo'>"); 
    echo(
    "<option value=''>Seleziona qui il campo</option>"); 
    $query mysql_query("SELECT Nome FROM campo"); 
    while (
    $campo mysql_fetch_array($query)) { 
        echo(
    "<option value='$campo[Nome]'>$campo[Nome]</option>"); 

    echo(
    "</select>"); 
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it L'avatar di tommy84
    Registrato dal
    Jan 2006
    Messaggi
    109
    Devo una cena a safital e Saretta883 .

    Grazie 1000 per le info.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.