Visualizzazione risultati 1 fino 18 di 18

Discussione: Seleziona un opzione in un "<select>" a seconda del valore inviato tramite metodo GET

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito Seleziona un opzione in un "<select>" a seconda del valore inviato tramite metodo GET

    Buonasera,
    volevo sapere se c'è una funzione che mi permetta di selezionare in un select una determinata opzione a seconda di un numero che viene inviato tramite $_GET['pag'];

    Praticamente ho creato una pagina PHP che in se ha più "schermate" quindi verrebbe cosi index.php?pag=1 | index.php?pag=2 ecc

    Poi in basso a tutte le pagine ho un select:
    Codice HTML:
    <select name="pagina">
    <option value="1">Pagina 1</option>
    <option value="2">Pagina 2</option>
    <option value="3">Pagina 3</option>
    <option value="4">Pagina 4</option>
    <option value="5">Pagina 5</option>
    </select>
    E ora vorrei che a seconda dell $_GET['pag'] venga selezionata proprio la pagina in cui si trova l'utente.

    E' possibile farlo?
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Leggi la guida sul tag option, in particolare l'esempio:
    Codice HTML:
    <select>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="opel" selected="selected">Opel</option>
    <option value="audi">Audi</option>
    </select>
    basta che metti un selected="selected" nel posto giusto.

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Si so come selezionarlo io...ma volevo sapere posso farlo selezionare manualmente tramite il valore in $_GET. Mi spiego meglio:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Senza nome 1</title>
    </head>

    <body>
    <?php if($_GET['pag'] == "1"){ ?>
    ///Visualizzo un codice HTML
    <?php } if($_GET['pag'] == "2"){ ?>
    ///Visualizzo un codice HTML diverso
    <?php } eccetera ?>
    <select name="pagina">
    <option value="1">Pagina 1</option>
    <option value="2">Pagina 2</option>
    <option value="3">Pagina 3</option>
    <option value="4">Pagina 4</option>
    <option value="5">Pagina 5</option>
    </select>
    </body>

    </html>
    Naturalmente questo è un esempio banale...ma il significato più o meno e questo. Il codice della pagina cambia sempre mentre lo scroll no, quindi se seleziono una voce come dici tu l'utente se va nella pagina 10 vedrà sempre selezionato (ad esempio) la pagina 3.
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    -sigh- proprio il php no tu, eh? non riesci ad inventarti un modo in cui quel selected lo fai apparire nell'<option> corrispondente alla pagina che stai visitando? tipo:
    Codice PHP:
    if ($pag == 1) {
    echo
    '<option value="1" selected="selected">Pagina 1</option>';
    echo
    '<option value="2">Pagina 2</option>';
    } else {
    echo
    '<option value="1">Pagina 1</option>';
    echo
    '<option value="2" selected="selected">Pagina 2</option>';
    }
    e se hai più pagine, ci metti un ciclo ed un if. Va e fàccila da solo, per una volta.

  5. #5
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    ...oppure

    Codice PHP:

    <select name="nome">
    <option value="1" <?php if($pag == 1) { echo "selected"; } ?>>Opz. 1</option>
    <option value="2" <?php if($pag == 2) { echo "selected"; } ?>>Opz. 2</option>
    <option value="3" <?php if($pag == 3) { echo "selected"; } ?>>Opz. 3</option>
    </select>
    Lo so, fa schifo. Però funziona, e alla grande!

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Grazie dell'interessamento Leo91 ma questo codice potrebbe essere troppo pesante per la mia pagina...devo provare quello di dreadnaut.
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    Ospite Guest

    Predefinito

    Sotto PHP5 puoi usare DomDocument:

    Codice PHP:
    <?

    ob_start
    ();



    echo
    '<select name="pagina">
    <option value="1">Pagina 1</option>
    <option value="2">Pagina 2</option>
    <option value="3">Pagina 3</option>
    <option value="4">Pagina 4</option>
    <option value="5">Pagina 5</option>
    </select>'
    ;

    //html select


    $select = ob_get_contents();

    ob_get_clean();

    $doc = new DOMDocument();

    $doc->loadHTML($select);

    $tt_opzioni = $doc->getElementsByTagName('option');


    foreach(
    $tt_opzioni as $opzione){

    if(
    $opzione -> getAttribute('value') == $_GET['id'] )

    $opzione -> setAttribute('selected', 'selected');

    }




    echo
    $doc -> saveXML();




    ?>
    Oppure JavaScript:

    Codice HTML:
     <script type="text/javascript">
     
     qs = window.location.search.substring(1);
     
     qs_p = qs.split("&");
     
     var p;
     var get = new Array();
     
     for (get_ in qs_p)
     {
    	 p = qs_p[get_].split('=');
    	 get[p[0]] = p[1];
     }
     
     var tt_opzioni = document.getElementsByTagName('option'); 
    
    for(opzione in tt_opzioni){
    
    	 if(tt_opzioni[opzione].value == get['id'])
    	 
             tt_opzioni[opzione].selected="selected"; 
     
    }
    
     </script>



    Ciao!

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Bah non so che dirti...qui senza di te non si farebbe niente
    Ti ringrazio molto come al solito lo script funziona proprio come volevo io...adesso sarebbe possibile modificarlo affinchè quando l'utente cambia pagina esso va a quella determinata pagina?
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Ospite Guest

    Predefinito

    In che senso 'cambia pagina'?

    Quando viene cambiata opzione nella select?

    Ciao!

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Sisi, quando viene cambiata l'opzione della select deve andare a index.php?pag=numero_di_pagina_scelta.
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    [snip] c'è l'evento onchange comunque, che fa al caso tuo

    già, se non ci fosse Probid che ti da sempre il codice pronto, non impareresti mai nulla. Ah, no, aspetta!
    Ultima modifica di dreadnaut : 30-01-2008 alle ore 22.04.28

  12. #12
    Ospite Guest

    Predefinito

    Codice HTML:
    <select name="pagina" onchange="location.href= this.options[this.selectedIndex].value+'.php';">
    <option value="1">Pagina 1</option>
    <option value="2">Pagina 2</option>
    <option value="3">Pagina 3</option>
    <option value="4">Pagina 4</option>
    <option value="5">Pagina 5</option>
    </select>
    Ciao!

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    No, aspetta...quando cambia non deve andare a pagina 2.php (per esempio) ma a index.php?pag=2
    Apprezzi l'aiuto? Offrimi un caffè!

  14. #14
    Ospite Guest

    Predefinito

    Bhè?

    Codice HTML:
    [cut]
    onchange="location.href= 'index.php?pag='+this.options[this.selectedIndex].value;"
    [cut]

    Ciao!

  15. #15
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    già, se non ci fosse Probid che ti da sempre il codice pronto, non impareresti mai nulla. Ah, no, aspetta!
    Questo post non l'avevo proprio visto comunque voglio dirti solo che non ho capito la seconda parte. Inoltre è vero che probid da sempre il codice pronto...embè? Qual'è il problema? Lui sta solamente facendo quello che si dovrebbe fare in un forum: aiutare chi ha bisogno di assistenza...e vero che tu puoi spingere un utente a studiarsi le guide per farsi da solo il codice ma molte volte quando uno ti da il codice che vuoi, vedi la funzione interessata e te la vai a studiare capisci molto meglio.

    Tu puoi dire a me di studiarmi l'arabo...ma se non ho nemmeno le basi iniziali o minimo un esempio non conoscerò mai quella lingua.

    @probid Ottimo il tuo codice funziona perfettamente grazie tante...allora è proprio vero "No Probid, No Party!"
    Apprezzi l'aiuto? Offrimi un caffè!

  16. #16
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

  17. #17
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Miki, sono mesi che chiedi codice elementare, e non ti ricordi quasi nulla da una volta all'altra. E sei tanto abituato ad avere la pappa pronta che non guardi neanche il codice che ti viene dato, ma piagnucoli all'istante, come dimostrato poco sopra

  18. #18
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Ammetto che è come dici tu...sono uno che vedendo la pappa pronta buona non pensa a studiare perchè l'unico mio errore e di andare avanti invece di fermarmi a capire...e solo quando non ho nulla da fare torno sui miei passi.

    Comunque volevo dirvi che nel post #15 ho sbagliato, cioè il codice funziona bene in locale mentre qui su AlterVista da quest'errore:
    Fatal error: Call to undefined method: domdocument->loadhtml() in /membri/miki92/php5/sc_change.php on line 18
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •