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

    Semplice problema controllo menu a tendina con SELECT

    Buongiorno a tutti

    Ho un piccolo script che controlla la scelta fatta precedentemente in un form con SELECT e in caso la mette di default sul form quando si ricarica la pagina.

    Se per esempio sto cercando solo gli utenti del sito che siano maschi scelgo dal menu a tendina "Uomo".
    Quando clicco sul pulsante di ricerca, il form deve ricordare la scelta fatta mettendo di default nel menu la voce "Uomo".

    Eccovi il codice:
    codice:
    <tr><td class="filtri_ricerca">Sesso</td></tr>
    <tr><td class="filtri_ricerca"><select name="sesso">
    <option VALUE="" <?php if ((!isset($_GET['sesso']))||($_GET['sesso']=="")) echo "SELECTED"; ?>>Qualsiasi</option>
    <option VALUE="m" <?php if ($sesso == "m") echo "SELECTED"; ?>>Uomo</option>
    <option VALUE="f" <?php if ($sesso == "f") echo "SELECTED"; ?>>Donna</option>
    </select>
    </td></tr>
    ...prima però faccio un controllo (che mi serve per scrivere una query):
    codice:
    if ((!isset($_GET['sesso']))||($_GET['sesso']==""))
    {
    $sesso="";
    $where1="WHERE sesso != '".$sesso."'";
    }
    else
    {
    $sesso=$_GET['sesso'];
    $where1="WHERE sesso='".$sesso."'";
    }
    Il problema è che la scelta non viene ricordata nel caso in cui la scelta fatta è "Qualsiasi".
    Anche al primo caricamento della pagina viene messo di default "Uomo" e non "Qualsiasi".

    Com'è possibile?
    Forse ho dimenticato qualche segno di punteggiatura... ma dove??

    Grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    98
    ho letto velocemente questo non sembra giusto:
    codice:
    <option VALUE="" <?php if ((!isset($_GET['sesso']))||($_GET['sesso']=="")) echo "SELECTED"; ?>>Qualsiasi</option>
    prova cosi:
    codice:
    <option VALUE="" <?php if ((!isset($_GET['sesso']))||($_GET['sesso']=="")) {?> selected<?php } ?>>Qualsiasi</option>
    facci sapere

  3. #3

    Re: Semplice problema controllo menu a tendina con SELECT

    Originariamente inviato da marcsellier
    Buongiorno a tutti

    Ho un piccolo script che controlla la scelta fatta precedentemente in un form con SELECT e in caso la mette di default sul form quando si ricarica la pagina.

    Se per esempio sto cercando solo gli utenti del sito che siano maschi scelgo dal menu a tendina "Uomo".
    Quando clicco sul pulsante di ricerca, il form deve ricordare la scelta fatta mettendo di default nel menu la voce "Uomo".

    Eccovi il codice:
    codice:
    <tr><td class="filtri_ricerca">Sesso</td></tr>
    <tr><td class="filtri_ricerca"><select name="sesso">
    <option VALUE="" <?php if ((!isset($_GET['sesso']))||($_GET['sesso']=="")) echo "SELECTED"; ?>>Qualsiasi</option>
    <option VALUE="m" <?php if ($sesso == "m") echo "SELECTED"; ?>>Uomo</option>
    <option VALUE="f" <?php if ($sesso == "f") echo "SELECTED"; ?>>Donna</option>
    </select>
    </td></tr>
    ...prima però faccio un controllo (che mi serve per scrivere una query):
    codice:
    if ((!isset($_GET['sesso']))||($_GET['sesso']==""))
    {
    $sesso="";
    $where1="WHERE sesso != '".$sesso."'";
    }
    else
    {
    $sesso=$_GET['sesso'];
    $where1="WHERE sesso='".$sesso."'";
    }
    Il problema è che la scelta non viene ricordata nel caso in cui la scelta fatta è "Qualsiasi".
    Anche al primo caricamento della pagina viene messo di default "Uomo" e non "Qualsiasi".

    Com'è possibile?
    Forse ho dimenticato qualche segno di punteggiatura... ma dove??

    Grazie a tutti
    Se non metti nessun selected="selected" la voce selezionata dovrebbe essere la prima.
    Ciao!

  4. #4
    @ Ngulo Grazie per la risposta ma col tuo suggerimento non cambia nulla...

  5. #5

    Re: Re: Semplice problema controllo menu a tendina con SELECT

    Originariamente inviato da fmortara
    Se non metti nessun selected="selected" la voce selezionata dovrebbe essere la prima.
    Il selected mi serve necessariamente proprio per ricordare la scelta fatta.
    Comunque ho fatto la prova: l'ho tolto ma non cambia proprio nulla. "Uomo" è la scelta che viene mostrata di default.

    Se metto "Donna" la scelta viene ricordata correttamente, se metto "Qualsiasi" ritorna di default su "Uomo"...

  6. #6
    posta il codice html della select come mostrato dal browser.
    Ciao!

  7. #7
    Originariamente inviato da fmortara
    posta il codice html della select come mostrato dal browser.
    Eccolo
    codice:
    	<tr><td class="filtri_ricerca">Sesso</td></tr> 
        <tr><td class="filtri_ricerca"><select name="sesso"> 
    	<option VALUE="" SELECTED>Qualsiasi</option> 
    	<option VALUE="m" SELECTED>Uomo</option> 
    	<option VALUE="f" >Donna</option> 
    	</select> 
    	</td></tr>
    Entrambi vengono interpretati dal browser con SELECTED...
    Strano no?

    Ho altri filtri di ricerca molto simili e funzionano tutti!

  8. #8
    Quindi è chiaro che $sesso è uguale a m...
    L'errore è da qualche parte nel valorizzare la variabile.
    Ciao!

  9. #9
    Ma l'unica valorizzazione della variabile avviene quì:

    codice:
    if ((!isset($_GET['sesso']))||($_GET['sesso']==""))
    {
    $sesso="";
    $where1="WHERE sesso != '".$sesso."'";
    }
    else
    {
    $sesso=$_GET['sesso'];
    $where1="WHERE sesso='".$sesso."'";
    }

  10. #10
    Originariamente inviato da fmortara
    Quindi è chiaro che $sesso è uguale a m...
    L'errore è da qualche parte nel valorizzare la variabile.
    Ti ringrazio per l'aiuto! Ho trovato l'errore
    C'era una query in mezzo al codice che ricavava un altro valore per $sesso.

    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.