Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Select dato fisso

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139

    Select dato fisso

    Ho una select di questo tipo:

    codice:
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <select name="uno">
    <option value="00">00</option>  
    <option value="01">01</option>
    <option value="02">02</option>
    </select>
    <input type="submit" value="invia">
    </form>
    Quando seleziono un'elemento vorrei che al caricamento della pagina rimanga visualizzato quello selezionato qualcuno sa come fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    se gli OPTION li generi in php con un ciclo semplicemente ad ogni iterazioni controlli se il valore è quello attuale, nel qual caso aggiungi l'attributo SELECTED, altrimenti devi inserire il controllo in ciascun tag, tipo:

    codice:
    ...
    <option value="01" <?php if (...=='01') print 'selected="selected"'; ?>>01</option>
    ...
    ...ti consiglio il loop, però!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    si ok per il loop ma non ho capito il resto

    codice:
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <select name="uno">
    <?php for($i=1900;$i<2023;$i++){?>
             <option value="<?php echo $i ?>" <?php if ($_SESSION['anno'] == $i){ echo 'selected="selected"';}      ?>><?php echo $i?></option>
    <?php } ?> 
    </select>
    <input type="submit" value="invia">
    </form>
    
    
    
    
    <?php
    
    
    $_SESSION['anno'] = $_POST['uno'];
    
    ?>



    non va mica

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    apri l'html generato e controlla/posta quello (solo la parte con OPTION!), a me funziona (così, p.es:

    Codice PHP:
    $anno 1910;
    print 
    '<select name="uno">';
    for(
    $i=1900;$i<1920;$i++){
      print
    '<option value="'.$i.'"';
      if (
    $anno == $i){ echo 'selected="selected"';};
      print
    '>'.$i.'</option>';
    }; 
    )

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    Forse mi sono spiegato male, premendo il pulsante di input del form invio il dato selezionato tramite post, quando la pagina viene ricaricata il dato selezionato diventa quello di default della select per questo avevo usato una variabile di sessione.


    solo che non funge, il tuo script é ok ma non é quello che mi serviva.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma se al posto del mio set iniziale di esempio $anno=1900 metti $anno=$_SESSION['...'] non va bene?

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    ho già provato non va

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    Risolto avevo dimenticato session_start();

    codice:
    <?php
    session_start();
    
    $_SESSION['an'] = $_POST['uno']; 
    ?>
    
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    
    <?
    print '<select name="uno">';
    for($i=1900;$i<1920;$i++){
      print'<option value="'.$i.'"';
      if ($_SESSION['an'] == $i){ echo 'selected="selected"';};
      print'>'.$i.'</option>';
    };
    ?>
    <input type="submit" name="submit" value="invia">
    </form>

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.