Conservation de la valeur liste déroulante
bbk91
-
Posotaz Messages postés 489 Date d'inscription Statut Membre Dernière intervention -
Posotaz Messages postés 489 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai une question sur les listes déroulantes,
J'ai 3 listes déroulantes: une pour pour la date(qui est en fait composé de 3 listes déroulantes pour le jour, le mois et l'année) , une liste pour des processus et une pour des procédures.
A savoir que les deux dernières listes sont liées entre elles.
Mon problème est que lorsqu'une fois que j'ai sélectionné la date et que je passe à une autre liste, ma date sélectionnée n'est pas conservée et se remt en valeur par défaut.
Comment faut-il faire pour que ca ne se produise pas et que je puisse renvoyer la date dans une base de données?
Merci d'avance
CDLT
bbk91
J'ai 3 listes déroulantes: une pour pour la date(qui est en fait composé de 3 listes déroulantes pour le jour, le mois et l'année) , une liste pour des processus et une pour des procédures.
A savoir que les deux dernières listes sont liées entre elles.
Mon problème est que lorsqu'une fois que j'ai sélectionné la date et que je passe à une autre liste, ma date sélectionnée n'est pas conservée et se remt en valeur par défaut.
Comment faut-il faire pour que ca ne se produise pas et que je puisse renvoyer la date dans une base de données?
<tr> <p> <label>La <em>date</em> de votre demande est le</label> <select name="day" id="day"> <?php echo "<option>1</option>"; echo "<option>2</option>"; echo "<option>3</option>"; echo "<option>4</option>"; echo "<option>5</option>"; echo "<option>6</option>"; echo "<option>7</option>"; echo "<option>8</option>"; echo "<option>9</option>"; echo "<option>10</option>"; echo "<option>11</option>"; echo "<option>12</option>"; echo "<option>13</option>"; echo "<option>14</option>"; echo "<option>15</option>"; echo "<option>16</option>"; echo "<option>17</option>"; echo "<option>18</option>"; echo "<option>19</option>"; echo "<option>20</option>"; echo "<option>21</option>"; echo "<option>22</option>"; echo "<option>23</option>"; echo "<option>24</option>"; echo "<option>25</option>"; echo "<option>26</option>"; echo "<option>27</option>"; echo "<option>28</option>"; echo "<option>29</option>"; echo "<option>30</option>"; echo "<option>31</option>"; ?> </select> <label>-</label> <select name="month" id="month"> <?php echo "<option>Janvier</option>"; echo "<option>Février</option>"; echo "<option>Mars</option>"; echo "<option>Avril</option>"; echo "<option>Mai</option>"; echo "<option>Juin</option>"; echo "<option>juillet</option>"; echo "<option>Aoucirc</option>"; echo "<option>Septembre</option>"; echo "<option>Octobre</option>"; echo "<option>Novembre</option>"; echo "<option>Décembre</option>"; ?> </select> <label>-</label> <select name="year" id="year"> <?php echo "<option>1988</option>"; echo "<option>1989</option>"; echo "<option>1990</option>"; echo "<option>1991</option>"; echo "<option>1992</option>"; echo "<option>1993</option>"; echo "<option>1994</option>"; echo "<option>1995</option>"; echo "<option>1996</option>"; echo "<option>1997</option>"; echo "<option>1998</option>"; echo "<option>1999</option>"; echo "<option>2000</option>"; echo "<option>2001</option>"; echo "<option>2002</option>"; echo "<option>2003</option>"; echo "<option>2004</option>"; echo "<option>2005</option>"; echo "<option>2006</option>"; echo "<option>2007</option>"; echo "<option>2008</option>"; echo "<option>2009</option>"; echo "<option>2010</option>"; echo "<option>2011</option>"; echo "<option>2012</option>"; echo "<option>2013</option>"; echo "<option>2014</option>"; echo "<option>2015</option>"; echo "<option>2016</option>"; echo "<option>2017</option>"; echo "<option>2018</option>"; echo "<option>2019</option>"; echo "<option>2020</option>"; ?> </select> </p> </tr> <?php $req = "SELECT * FROM processes ORDER BY heading ASC"; $res = $db->Execute($req); ?> <tr> <td><label for="pros1">Veuillez sélectionner le <em>processus</em> concerné</label> :</td> <td><select name="pros1" id="id_pros1" onChange="submit()"> <option>-- Choisissez --</option> <?php while ($data=$res->FetchRow()){ ?> ....
Merci d'avance
CDLT
bbk91
A voir également:
- Conservation de la valeur liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Supprimer liste déroulante excel - Forum Réseaux sociaux
- Liste code ascii - Guide
3 réponses
Salut,
Il manque la déclaration du formulaire pour comprendre si c'est normal que la date se perd après la sélection du processus (c'est bien à ce moment là qu'elle se perd non ?) mais de manière générale, le script qui s'exécute sur le submit de ton champ "pros1" doit récupérer les champs "day", "month" et "year".
Maintenant quand tu envoies un formulaire, lors du réaffichage de la page c'est normal que tu perdes toutes les infos jusque là encodées. Ton script PHP, en plus de récupérer la date et alimenter le champ des procédures, doit placer explicitement le jour, le mois et l'année à la bonne valeur au travers de la propriété/valeur selected="selected".
Au fait, pourquoi tu t'amuses à générer tes listes séquentielles en PHP sans utiliser de boucle ? Moi j'aurais plutôt fait comme ça :
Parce qu'en plus il faut que chaque option contienne un attribut value ; c'est la valeur de cet attribut qui va être envoyée au formulaire, pas le texte se trouvant dans la balise option.
Ainsi ben quand par exemple le formulaire reçevra le jour de la date par $_POST['day']; il te faudra, dans ta boucle, tester si la variable $i correspond au jour envoyé et dans ce cas placer l'attribut selected avec la valeur selected (c'est pas fort optimal comme algorithme mais c'est pour l'idée*). Et là normalement il devrait sélectionner automatiquement le bon jour.
* Un algorithme optimal viserait à créer une boucle contenant un nombre d'itérations inférieur à la position devant être sélectionnée, à écrire ensuite cette option avec la propriété selected et continuer la boucle jusqu'à sa fin.
Voilà.
Il manque la déclaration du formulaire pour comprendre si c'est normal que la date se perd après la sélection du processus (c'est bien à ce moment là qu'elle se perd non ?) mais de manière générale, le script qui s'exécute sur le submit de ton champ "pros1" doit récupérer les champs "day", "month" et "year".
Maintenant quand tu envoies un formulaire, lors du réaffichage de la page c'est normal que tu perdes toutes les infos jusque là encodées. Ton script PHP, en plus de récupérer la date et alimenter le champ des procédures, doit placer explicitement le jour, le mois et l'année à la bonne valeur au travers de la propriété/valeur selected="selected".
Au fait, pourquoi tu t'amuses à générer tes listes séquentielles en PHP sans utiliser de boucle ? Moi j'aurais plutôt fait comme ça :
for($i=1; $i<=31; $i++) { echo '<option value="' . $i . '">' . $i . '</option>'; }
Parce qu'en plus il faut que chaque option contienne un attribut value ; c'est la valeur de cet attribut qui va être envoyée au formulaire, pas le texte se trouvant dans la balise option.
Ainsi ben quand par exemple le formulaire reçevra le jour de la date par $_POST['day']; il te faudra, dans ta boucle, tester si la variable $i correspond au jour envoyé et dans ce cas placer l'attribut selected avec la valeur selected (c'est pas fort optimal comme algorithme mais c'est pour l'idée*). Et là normalement il devrait sélectionner automatiquement le bon jour.
* Un algorithme optimal viserait à créer une boucle contenant un nombre d'itérations inférieur à la position devant être sélectionnée, à écrire ensuite cette option avec la propriété selected et continuer la boucle jusqu'à sa fin.
Voilà.