Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Menu a tendina ed estrazione da database

    Ciao a tutti!
    Stavo rispolverando un po' di php di base, visto che mi piacerebbe riprendere a programmare. Esercitandomi con i form credo di essermi perso in un bicchier d'acqua.
    Ho creato un form che registra alcuni dati in un database. Uno dei dati richiesti è selezionato tramite un menu a tendina.
    Ho strutturato poi un altro form che pesca i dati dal database per un'eventuale modifica. Tutto bene tranne che per i dati selezionati in precedenza dal menu a tendina: come far comparire quello selezionato?
    In sostanza non riesco a capire come applicare un "selected" in un ciclo while! :|
    Grazie per i suggerimenti che vorrete darmi!
    Antropologia? Sì, grazie!
    http://www.antrocom.org

  2. #2
    Non ho capito se il problema é inserire il dato che é stato selezionato con il menù a tendina nel db o estrapolarlo dal db, nel senso di ricostruire il menu a tendina con selezionato il valore salvato nel db
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Non sono sicuro di aver capito bene, comunque forse devi semplicemente controllare se il valore che recuperi da DB è uguale ad uno dei valori che assegni all'attributo "value" dei tag <option> oppure al contenuto del tag stesso (nel caso in cui non usi l'attributo value).
    Il controllo è una cosa del tipo:
    Codice PHP:
     $query "SELECT campo1,campo2,campo_select FROM tabella WHERE cond = 'value'";
            
    $result mysql_query($query,$conn);
            while (
    $array mysql_fetch_assoc($result)) {
            
                echo 
    "<select name=\"select_name\">";
                
    $selected = ($array['campo_selected'] == 'valore1')? "selected=\"selected\"" "";
                echo 
    "<option value=\"valore1\" $selected>Prima Opzione</option>";
                
    $selected = ($array['campo_selected'] == 'valore2')? "selected=\"selected\"" "";
                echo 
    "<option value=\"valore2\" $selected>Secpnda Opzione</option>";
                
    $selected = ($array['campo_selected'] == 'valore3')? "selected=\"selected\"" "";
                echo 
    "<option value=\"valore3\" $selected>Terza Opzione</option>";
                
    // e così via
                
    echo "</selected>";
            
            } 
    Solo qualche appunto pero':
    - in questo modo ti viene stampato un form per ogni record tirato fuori dalla query, quindi in realtà (in generale) ha senso se la query ha una condizione where che tira fuori un solo record (quindi un controllo sull'ID ad esempio).
    - chiaramente conviene scrivere il "select" e le sue "option" utilizzando un ciclo se è possibile, per snellire il codice.
    Non so se ciò che ti interessava fosse questo.
    Ciao
    =======================
    http://www.abidibo.net

  4. #4
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419

    Re: Menu a tendina ed estrazione da database

    Originariamente inviato da Red Wolf
    Ciao a tutti!
    Stavo rispolverando un po' di php di base, visto che mi piacerebbe riprendere a programmare. Esercitandomi con i form credo di essermi perso in un bicchier d'acqua.
    Ho creato un form che registra alcuni dati in un database. Uno dei dati richiesti è selezionato tramite un menu a tendina.
    Ho strutturato poi un altro form che pesca i dati dal database per un'eventuale modifica. Tutto bene tranne che per i dati selezionati in precedenza dal menu a tendina: come far comparire quello selezionato?
    In sostanza non riesco a capire come applicare un "selected" in un ciclo while! :|
    Grazie per i suggerimenti che vorrete darmi!


    Ciao,

    all'inizio del file dovresti avere l'elenco delle variabili che ricevi dal post del form.
    Facciamo finta che ho una select categoria...

    all'inizio della pagina scrivo

    codice PHP:
    Codice PHP:
    $p_categoria=$_POST[categoria]; 
    In questo modo ogni volta che viene eseguito il submit del form, so quanto valeva la select.

    A questo punto quando faccio il while, devo andare a dire qual'è il valore selezionato, facendo un confronto dell'esito della query, con il valore del campo selezionato in precedenza...


    codice PHP:
    Codice PHP:
    //while(...

    if ($query_categoria == $post_categoria)
       echo 
    "<option selected value='$query_categoria'>$query_categoria</option>";

    else
       echo 
    "<option value='$query_categoria'>$query_categoria</option>";

    // } 
    Prova ad adattare il concetto al tuo codice...


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  5. #5
    Grazie a tutti voi per i suggerimenti!
    Alla fine, cogitandoci sopra confrontando il codice che avete postato, ho visto che mi bastava porre:

    Codice PHP:
    $query="SELECT * FROM tabella WHERE id='".$_SESSION['id']."'";
    $result mysql_query($query);

    while (
    $row mysql_fetch_array($result))  {

    echo 
    "<option selected value='$row[categoria]'>$row[categoria]</option>
    <option value=\"categoria1\">categoria1</option>
    <option...
    "
    ;

    e questo mi ha fatto capire che sono moooolto arrugginito!
    Antropologia? Sì, grazie!
    http://www.antrocom.org

  6. #6
    Non è che però così all'interno del select ti si ripete due volte la scelta che era stata selezionata?
    =======================
    http://www.abidibo.net

  7. #7
    In effetti hai ragione, ho cantato vittoria troppo presto! :|
    Antropologia? Sì, grazie!
    http://www.antrocom.org

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.