Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Form, <select> e PHP

  1. #1

    Form, <select> e PHP

    Ho bisogno ancora del vostro aiuto.. ho creato un form, nel quale vi sono dei campi di tipo select dove l'utente può appunto scegliere delle opzioni per compilare il modulo (in realtà non lo farà l'utente ma, in questo caso, il recensore che dovrà scrivere la recensione del videogioco). Ho anche scritto il codice php per estrapolare i dati che mi interessano dal db, ma non so come "mettere" quei risultati all'interno dei select del mio form..

    Questo il codice del form:

    codice:
    <html>
    <body>
    <head>
    <title>Aggiungere Recensione</title>
    </head>
    <form action="addreview.php" method="request">
    
    Inserisci recensione:</p>
    <label>Nome:<input type="text" name="name" /></label>
    
    <label>Genere:</label><select name="genere"><option value=<?php echo '$genere_id'; ?>"><?php echo '$genere_nome'; ?>
    <textarea cols=50 rows=10 wrap="physical" name="testo"  /></textarea>
    
    <input type="checkbox" name="validate" value="yes">
    <input type="submit" name="invia" value="INVIA" />
    </form>
    </body>
    </html>
    questo invece, il codice php:

    codice:
    <?php
    
    $genere=mysql_query('SELECT genere.id, genere.genere FROM genere');
    
    while($genere2 = mysql_fetch_array($genere))
    {
    $genere_id = $genere2['id'];
    $genere_nome = $genere2['genere'];
    }
    
    ?>
    ho tagliato il codice php riferendomi così solo al primo select..

  2. #2
    ... a buon rendere...
    Codice PHP:
    <?php
    /*
        TUTTO CIO' ANDREBBE INSERITO IN UNA LIBRERIA DI FUNZIONI O IN UNA CLASSE 
        DA INCLUDERE ALL'OCCORRENZA...
    */
    function array_genere_videogioco()
        {
        
    $genere mysql_query('SELECT genere.id, genere.genere FROM genere') or die (mysql_error());
        
    $array_generi = array();
        while(
    $row mysql_fetch_array($genere))
            {
            
    $array_generi[$row['id']] = $row['genere'];
            }
        return 
    $array_generi;
        }
        
    function 
    select_generi_videogioco()
        {
        
    $array_generi array_genere_videogioco();
        
    $html '';
        if(!empty(
    $array_generi))
            {
            
    $html .= '<select name="genere">';
            foreach(
    $array_generi as $id_videogioco => $genere_videogioco)
                {
                
    $html .= '<option value="'.$id_videogioco.'">'.$genere_videogioco.'</option>';
                }
            
    $html .= '</select>';
            }
        return 
    $html;    
        }
    ?>
    <html>
    <body>
    <head>
    <title>Aggiungere Recensione</title>
    </head>
    <form action="addreview.php" method="request">

    Inserisci recensione:</p>
    <label>[b]Nome:[/b]<input type="text" name="name" /></label>

    <label>[b]Genere:[/b]</label>
        <?php echo select_generi_videogioco(); ?>
    <textarea cols=50 rows=10 wrap="physical" name="testo"  /></textarea>

    <input type="checkbox" name="validate" value="yes">
    <input type="submit" name="invia" value="INVIA" />
    </form>
    </body>
    </html>

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    La creazione degli <option> devi metterla dentro il ciclo while.

  4. #4
    @oly1982 Alhazred

    grazie ad entrambi

    @oly1982

    hai ragione, dovrei mettere tutto in una libreria e di fatti farò così, come ho già fatto in precedenza, stavo provando il codice, quando vedo che funziona poi lo metto all'interno di una libs da includere, appunto, all'occorrenza, come ad esempio, l'include per la connessione al db

    grazie

  5. #5
    un paio di cose che vorrei capire, per favore

    la prima, qui hai scritto:

    $array_generi=array();
    questa é una dichiarazione della variabile $array_generi come array giusto?, é una dichiarazione vera e proria, corretto?. Te lo chiedo perché fin'ora in php non ho mai dichiarato variabili in questa maniera.. (nel c ero abituato ma qui no..)

    Poi, nella seconda funzione, hai usato la variabile restituita dalla prima funzione, quindi $array_generi e gli hai associato la funzione array_generi_videogioco() ?.. ecco qui mi perdo un secondo..

    Altra domanda, nel if della seconda funzione hai scritto $html .= '<select name="genere">';

    mi sfugge il punto prima dell'uguale.. perché??

    e poi l'ultimo blocco foreach($array_generi as $id_videogioco => $genere_videogioco)

    per quanto riguarda $html .= é una unione? come scrivere
    codice:
    ' ' . ' '
    quando usi la funzione echo?

    scusa le domande da niubbo, ma vorrei capire meglio

  6. #6
    $array_generi=array();

    creo un array vuoto e ci aggiungo gli elementi nel ciclo while... se nn viene non viene individuato nessun record l'array rimarra vuoto
    ------------
    lo stesso nome attribuito alla variabile $array_generi è un caso... le due variabili nelle due funzioni sono distinte
    ------------
    la sintassi .= serve per concatenare una variabile stringa precedentemente creata
    ------------
    foreach è un ciclo che si utilizza con gli array
    ------------
    l'echo lo utilizzo sono una volta (guarda bene...)
    <?php echo select_generi_videogioco(); ?>

  7. #7
    lo stesso nome attribuito alla variabile $array_generi è un caso... le due variabili nelle due funzioni sono distinte
    quindi attribuisci alla variabile $array_generi il risultato della funzione array_genere_videogioco() giusto?

    la sintassi .= serve per concatenare una variabile stringa precedentemente creata
    ok grazie

    foreach è un ciclo che si utilizza con gli array
    si questo lo sapevo

    l'echo lo utilizzo sono una volta (guarda bene...)
    <?php echo select_generi_videogioco(); ?>
    si si, io mi riferivo alla funzione echo() come esempio, per capire l'uso del .=. L'esempio mio, era appunto l'uso della funzione echo all'interno della quale ho sempre usato la sintassi ' ' . ' ' per concantenare le stringhe.. non conoscevo .=

  8. #8
    @oly1982

    scusami ancora, ma non riesco a capire come faccio a recuperare l'id dei vari campi quando clicco "invia"..

    io riesco a recuperare il nome del gioco o il nome del genere od il testo usando la seguente sintassi:

    $nome= $_REQUEST['nome'];
    $genere= $_REQUEST['genere'];

    che fanno rispettivamente, riferimento al form alla sezione <select name="nome"> e <select name="genere"> .

    l'id é immagazzinato all'interno di:

    codice:
    $html .= '<option value="'.$id_videogioco.'">'.$genere_videogioco.'</option>';
    ma non so come estrapolarlo..

    abbi pazienza se puoi spiegarmelo mi fai un favore..

  9. #9
    l'id del genere è contenuta nella variabile

    $_POST['genere'];

    (ho ipotizzato il metodo post...)

  10. #10
    che stupido hai ragione... :-) grazie :-)

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.