Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    3

    mantenere il valore di una select dopo il submit

    Ciao a tutti.
    Ho un problema del quale non sono in grado di trovare la soluzione.
    In pratica al verificarsi di una certa condizione faccio stampare delle select (indicizzate in modo da poterne recuperare il valore).
    Il problema che vorrei risolvere è che al submit o al refresh della pagina, il valore selezionato resti tale invece di "perdersi".
    Il codice è il seguente:


    <?php

    // condizione da verificare
    if ($camere>0)


    print" <table width='90%' border='0' cellspacing='1' cellpadding='1'>

    <tr>

    <td><label>";

    // allora stampo tante select quante sono le camere
    for ($i=1;$i<=$camere;$i++)


    print" <select name=tipocam$i id=tipocam$i class='style1' >
    <option value='' >scegli</option>
    <option value='sgl' >singola</option>
    <option value='dbl' >doppia</option>
    <option value='tpl' >tripla</option>
    <option value='qpl' >quadrupla</option>

    </select>


    ";



    if ($camere>0)
    print" </label></td>
    </tr>
    </table>";

    print " </td> ";

    ?>

    Qualcuno ha avuto un problema analogo?
    Oppure sapete dirmi quale può essere la soluzione?
    Grazie in anticipo per l'aiuto che potrete darmi.

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao ,
    hai 2 possibilità:

    - portarti il valore selezionato nella url ( quindi in GET )
    - utilizzare una variabile di sessione

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    3
    Razor,
    probabilmente non mi sono spiegato bene(anzi è sicuro!).
    Cerco di fare meglio:
    Il mio problema non è propriamente nel submit(con l'invio di dati "post" ad un'altra pagina) ma nel refresh per aggiornare il valore delle select.
    Tieni presente che nel caso dei textfield so come superare il problema: assegno al value il valore della variabile
    esempio:

    print"
    <input type=\"text\" name=\"cognome$i\" id=\"cognome$i\" class=\"style1\" value='${"cognome{$i}"}' />
    ";

    (siamo sempre nella situazione in cui i campi select o textfield vengono stampati da un print in conseguenza di una variabile precedente che cambia valore)

    Non riesco a fare questo quando ho una select, cioè non riesco ad associare ad una variabile il valore della selezione.
    Sono riuscito a farti capire qualcosa di più?

    Grazie mille per la disponibilità

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Rispiegandomi quello che vuoi fare ho capito la stessa cosa di prima, quindi credo di averti risposto

    L'unico aspetto per cui ho ancora dei dubbi è riguardo al refresh di cui parli, cos'è che lo genera? L'invio del form o altro?

    In ogni caso, quello che ti serve per avere una option preselezionata è avere la keywork 'selected' all'interno del tag, per esempio

    Codice PHP:
    <option value='tpl' selected>tripla</option
    Come fare a definire quale delle option è stata precedentemente selezionata? Con i metodi di sopra.

    Se non ti ho risposto spero almeno di averti dato un input.
    Fammi sapere.
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    3
    Razor,
    forse è proprio su quello che bisogna fare chiarezza.
    Sia chiaro: sono perfettamente consapevole che non riesco a spiegarmi come si dovrebbe, per cui abbi pazienza.

    So della keyword selected, ma non devo "preselezionare".

    STiamo parlando di un form per la richiesta di preventivo per un viaggio.
    All'interno del form ci sono diverse select che permettono di scegliere tra diverse opzioni.
    Per far refreshare la pagina associo all'evento onchange della select la funzione this.form.submit().
    Per fare questo(e per evitare che il form venga inviato ad ogni refresh) ho dovuto eliminare(lasciare vuota) la action" " del form e per inviare effettivamente il form ho associato all'evento onclick del pulsante una funzione Submit (es. onclick="SubmitForm('paginadestinazione.php')" )

    Codice PHP:


    <script type="text/javascript" >

    function 
    SubmitForm(action) { 
        var 
    Form document.getElementById("form1"); 
            
    Form.action action
        
    Form.submit(); 
    }

    </script> 
    Per meglio farti capire vai a questo link

    http://www.openskies.it/richprevent.php

    Indica due adulti, ti chiederà i dati anagrafici(inseriscili).
    Qui emerge il problema:
    sono 4 campi di cui 1 select(titolo) e 3 textfield(cognome,nome,data di nascita)

    se poi scegli le camere(1 in questo caso) fa' un refresh per permetterti di scegliere la tipologia.

    a questo punto vedrai che dei dati anagrafici il titolo(che è un select) si è perso.

    ma questo si verifica con tutti i select nelle situazioni di refresh


    Adesso dovrebbe andare meglio, no?


    Grazie mille davvero.

  6. #6
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Supponendo che passi tramite post la variabile titolo$i, e i valori valgono 0,1,2...

    Codice PHP:
    echo"<select name='titolo$i' >";

    if(
    $_POST[titolo$i]==0)    echo "<option selected value='titolo$i'></option>";
    if(
    $_POST[titolo$i]==1)    echo "<option selected value='titolo$i'>Sig.re</option>";
    if(
    $_POST[titolo$i]==2)    echo "<option selected value='titolo$i'>Sig.ra</option>";

    echo 
    "
       <option value=0></option>
       <option value=1>Sig.re</option>
       <option value=2>Sig.ra</option>

    "
    ;                

    echo
    "</select> 


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

    Vincent van Gogh

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.