Maintien de l’état d’un select en php

Par Fantoche, il y a 9 ans


Bonjour,

Cela doit être tout couillon et je m’excuse d’avance pour cette question, mais, pour maintenir le choix d’un visiteur dans un formulaire, j’écris ceci dans un input :

`value="<?php if(isset($_POST['ville'])){ echo $_POST['ville']; } ?>"`

Mais lorsqu’il s’agit d’un menu déroulant a choix multiple, comment faire !!??

<select class="form-control" id="search_pays" name="search_pays"> <option value="">Choix du pays</option> <option value="France">France</option>< <option value="Belgique">Belgique</option> </select>

Merci

4 réponses

OverSpeed301, il y a 9 ans

Bonjour,

Il suffit d'ajouter l'attribut "selected" à l'option que tu souhaites maintenir.

<option value="France" selected="selected">France</option>
Fantoche, il y a 9 ans

Oui bien d’accord avec toi, mais je veux que l’option choisi par le visiteur France par exemple, se recharge en cas d’erreur, comme ce que je fais dans l’exemple pour un input plus haut.

Carouge10, il y a 9 ans

Bonsoir,
Tu peux faire comme ceci mais ce n'est pas forcément la meilleure solution

<select class="form-control" id="search_pays" name="search_pays"> <option value="">Choix du pays</option> <option <?= ($_POST["search_pays"] == "France") ? ' selected' : ' '; ?> value="France">France</option> <option <?= ($_POST["search_pays"] == "Belgique") ? ' selected' : ' '; ?>value="Belgique">Belgique</option> </select>

Je n'ai rien testé. J'ai fais cela de tête.
J'ai utiliser les tests ternaires

Fantoche, il y a 9 ans

Merci Carouge10 et bravo en plein dans le mille ;)