Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108

    Recupero dati dopo POST in una lista

    Salve a tutti,
    vi spisego il mio problema.
    Ho menù a tendina che preleva determinati valori dal db

    <select class="input" name="tipologia_delibere" >
    <?php
    //Recupero i dati dal DB
    $strSQL = "SELECT * FROM t_tipologia_delibere";
    $result = mysql_query($strSQL);
    //Visualizzo i records
    while ($row = mysql_fetch_assoc($result)){
    $tipologia = $row['Tipologia_delibere'];
    $id_tipologia_delibere = $row['ID'];
    echo "\t<option value=\"$id_tipologia_delibere\">$tipologia</option>\n";
    }

    ?>
    </select>

    questo mi serve per effettuare una ricerca inserendo altri dati in input.
    Con il campo input ho mantenuto il valore inserito facendo in questo modo:
    <input type="text" name="numero" value="<?php echo isset($_POST['numero']) ? $_POST['numero'] : '' ?>" maxlength="10" size="15" class="input" />

    Adesso come faccio con il menù a tendina? E' possibile mantenere il valore selezionato anche dopo il POST e quindi il risultato della ricerca?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, basta che aggiungi "selected" nella option desiderata e quindi essendo un ciclo, facendo un controllo fra il value che stai assegnando e quello mandato in post.
    https://www.w3schools.com/tags/att_option_selected.asp

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    Grazie della risposta.
    Se aggiungo "selected" nella option...
    while ($row = mysql_fetch_assoc($result)){
    $tipologia = $row['Tipologia_delibere'];
    $id_tipologia_delibere = $row['ID'];
    echo "\t<option value=\"$id_tipologia_delibere\" selected>$tipologia</option>\n";
    }
    mi restituisce sempre l'ultimo valore della lista anche dopo la scelta e quindi il POST della ricerca.
    Come faccio a risolvere? Grazie

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Certo, devi inserirlo con un controllo (IF) per verificare che solo quel value sia corrispondente.
    Cosi' dovrebbe essere giusto(non ho testato)
    codice:
    <select class="input" name="tipologia_delibere" >
    <?php
    //Recupero i dati dal DB
    $strSQL = "SELECT * FROM t_tipologia_delibere";
    $result = mysql_query($strSQL);
    //Visualizzo i records
    while ($row = mysql_fetch_assoc($result)){
      $tipologia = $row['Tipologia_delibere']; 
      $id_tipologia_delibere = $row['ID'];  
      $selected = ($_POST["tipologia_delibere"]==$id_tipologia_delibere) ? ' selected ' : '';
      echo "\t<option value=\"$id_tipologia_delibere\" $selected>$tipologia</option>\n";
    }
    
    
    ?> 
    </select>

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    Perfetto funziona grazie mille

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.