+ Rispondi alla Discussione
Risultati da 1 a 15 di 15

Pulsante "seleziona (elenco/menu)" con dati presi da database

Ultimo Messaggio di nofcfro il:
  1. #1
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120

    Pulsante "seleziona (elenco/menu)" con dati presi da database

    Salve,
    in un form "seleziona (elenco/menu)":
    Codice PHP:
    <select name="select" id="select">
      <
    option>1</option>
      <
    option>2</option>
    </
    select
    ho bisogno di inserire al posto dei valori "1", "2", i dati estratti da un database (in questo caso sono nomi):
    Codice PHP:
    <?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))
            {
                echo 
    "....."
            
    }
        
    ?>
    Come faccio?

  2. #2
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    Risolto
    Codice PHP:
    <FORM name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <SELECT name="elenco">
    <?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))
            {
                
    $myfield_1 $riga['id'];
                
    $myfield_1 $riga['nome']; 
                
                echo 
    "<option value=\"".$riga["nome"]."\">".$riga["nome"]."</option>";
            }
        
    ?>
    </SELECT>
    <INPUT type="submit" name="submit" value="Invia"><br>
    </FORM>
    Unica domanda: è giusto mettere nel campo ACTION
    Codice PHP:
    <?php echo $_SERVER['PHP_SELF']; ?>
    questo valore? Grazie

  3. #3
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,003
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Ciao nofcfro,
    puoi mettere action="" è iene già considerato come questa pagina, senza bisogno di specificarlo.

  4. #4
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    Perfetto!
    Una domanda, posso ad ogni oggetto che viene selezionato dal database dargli un valore?
    Esempio: nel database ho 3 nomi: Tizio, Caio, Sempronio, che ora mi vengono messi nel menù a tendina correttamente. Se io volessi dare a questi tre nomi un valore: Tizio = 1, Caio = 2, Sempronio = 3, cosicché nell'url es. ww.esempio.php?nomeid=1 ( o 2, o 3 ), come potrei fare?
    Grazie

  5. #5
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,003
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Devi inserire una chiave primaria autoincrement nella tabella.
    Tutte le tabelle dovrebbero avere un chiave primaria, altrimenti sono entità deboli.

  6. #6
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    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.

    Codice 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"); ?>
    Seleziono il nome che desidero, clicco sul pulsante "Procedi" e arrivo alla pagina2.php dove ho:

    Codice PHP:
    <?php
                
    if(isset($_POST["submit"]))
                {
                
    $zz$riga['nome'];
                
    $yy $riga['id'];
                echo 
    $zz;
                echo 
    $yy;
                }
    ?>
    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

  7. #7
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,003
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    L'invio del form ti spedisce il nome che ti ritrovi in $_POST['nomi'], la variabile $riga non esiste nella seconda pagina.

  8. #8
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    Ok, ma allora nella seconda pagina nel ciclo if cosa ci metto per richiamare i valori 'nome' e 'id'?
    Codice PHP:
    if(isset($_POST["nomi"]))
                {
                } 

  9. #9
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,003
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Non funziona cosi, un select del modulo ti fà inviare un valore.
    Se tu hai:
    Codice PHP:
    echo "<option value=\"".$riga["nome"]."\">".$riga["nome"]."</option>"
    E $riga["nome"] ha come valore TheDarkITA, quando invii il modulo ti ritrovi $_POST["nomi"] uguale a TheDarkITA.

  10. #10
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    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

  11. #11
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    Domanda sempre collegata: quando nella seconda pagina io ricavo i dati grazie al
    Codice PHP:
    $_POST 
    ricevo l'unico valore compreso nella stringa:
    Codice PHP:
    echo "<option value=\"".$riga["nome"]."\">".$riga["nome"]."</option>"
    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.

  12. #12
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,003
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    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.

  13. #13
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    Sì ma se andassi a modificare questa linea:
    Codice PHP:
    echo "<option value=\"".$riga["nome"]."\">".$riga["nome"]."</option>"
    cambiandola in questa:
    Codice PHP:
    echo "<option value=\"".$riga["id"]."\">".$riga["id"]."</option>"
    Poi nel menù a tendina comparirebbero solo gli id!

  14. #14
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,003
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Esiste la via di mezzo
    Codice PHP:
    echo "<option value=\"".$riga["id"]."\">".$riga["nome"]."</option>"

  15. #15
    User L'avatar di nofcfro
    Data Registrazione
    May 2012
    Località
    Roma
    Messaggi
    120
    Geniale

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.