Bonjour à toutes et à tous,
Je suis confronté à un problème relativement simple pour lequel je n'arrive pas à ma diriger pour trouver la solution.
Je voudrais créer une liste dynamique qui contient 4 valeurs. La liste déroulante doit afficher une des 4 valeurs par défaut (selected) qui ne devra pas apparaître une seconde fois dans la liste déroulante.
Cette liste reçois ses paramètres ou non d'un $_POST donc $_POST['size'].
[edit] J'ai failli oublié, j'ai vu sur pas mal de site que leur liste déroulante ne composait pas de valeur numérique mais des chaines de caractères. Exemple dans mon cas je voudrais que les valeurs utilisées soit array('20', '25', '30', '40') mais que la liste affiche pour 20 par exemple tiny, 25 > small, 30 medium, 40 large. Le problème c'est que quand le form a été envoyé, la page qui reçoit affiche le selected avec son value et non son selected:Pour essayer d'être plus clair, une fois le formulaire envoyé, l'option qui reçoit le $_POST et qui est selected doit afficher tiny et non 25 par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <option value="<?php if(isset($size)){echo $size;}else{echo 40;}?>"selected="selected"><?php if(isset($size)){echo $size;}else{echo 40;}?></option>
Voilà mon code qui rassemble toutes(?) les conditions nécessaires à l'assemblage du code final. C'est ce que je n'arrive pas à faire!
Je pense que c'est assez simple, mais je patauge!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php // Tableau qui contient les valeurs que la liste déroulante DOIT contenir $size_list = array('20', '25', '30', '40'); // Le fameux 'selected' prend une valeur du tableau qui ne doit être présente qu'une fois dans la liste déroulante echo "<option value='".$_POST['size']."' selected='selected'>".$_POST['size']."</option>"; // L'idée : affiche toute les size sauf celle utilisée pour selected if(isset($_POST) AND $_POST['size'] == $size_list[]) { } foreach ($size_list as $size) { echo "<option value='".$size."'>".$size."</option>"; } ?>
Merci de votre aide!
Partager