Ne pas changer la valeur dans <select> lorsque l'on re actualise
- Accueil
- Forum
- Programmation
- PHP
- Ne pas changer la valeur dans <select> lorsque l'on re actualise
leo_leclerc Le 21 avril 2017 à 13:30 (Édité le 25 janvier 2019 à 17:53)
<input type="emailp" placeholder="Votre adresse mail" id="mailp" name="mailp" value="<?php if(isset($mailp)) { echo $mailp; } ?>" class="entree"/>
<input type="emailp" placeholder="Votre adresse mail" id="mailp" name="mailp" value="<?php if(isset($mailp)) { echo $mailp; } ?>" class="entree"/>
Mais j'aimerais faire pareil pour les listes déroulantes car si par exemple l'utilisateur se trompe quelque part il faut refaire toutes les listes.
Avez vous une solutions ?
<select name="matiere" class="entree_select">
( A chaque fois que je rentre du code dans le forum juste une petit case se met avec la premiere ligne du code c'est pénible..)
Zbuu Le 21 avril 2017 à 17:13 (Édité le 1 janvier 1970 à 01:00)
Il faut faire pareil que pour un input sauf qu'il faut ajouter l'attribut selected a ta valeur
Un petit exemple :
<select name="sexe">
<option value="M" <?= isset($_POST['sexe']) && $_POST['sexe'] == 'M' ? 'selected' : null; ?>>Masculin</option>
<option value="F" <?= isset($_POST['sexe']) && $_POST['sexe'] == 'F' ? 'selected' : null; ?>>Féminin</option>
</select>
leo_leclerc Le 21 avril 2017 à 17:33 (Édité le 21 avril 2017 à 17:49)
Et pourquoi il n'y a pas de if ? Beaucoup de quesion je sais désolé mais j'essaie de bien comprendre...merci
Je viens d'essayer et sa ne fonctionne pas ...
<select name="statut" style="width:125px;" class="entree"> <!--Liste déroulante-->
<option value="prof_statut" <?= isset($POST['statut']) && $_POST['statut'] == 'prof_statut' ? 'selected' : null; ?> >prof</option>
<option value="eleves_statut" <?= isset($POST['statut']) && $_POST['statut'] == 'eleves_statut' ? 'selected' : null; ?>>eleve</option>
</select>
TheOldNoob Le 21 avril 2017 à 19:02 (Édité le 1 janvier 1970 à 01:00)
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/L_op%C3%A9rateur_conditionnel
et faire <?= est égale à <?php echo
Balatharas Le 21 avril 2017 à 19:25 (Édité le 1 janvier 1970 à 01:00)
C'est un opérateur ternaire conditionnel. On le vois de plus en plus :Grillé 😋
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/L_op%C3%A9rateur_conditionnel
et faire <?= est égale à <?php echo
En effet c'est des conditions ternaires. PrimFX en a fait une vidéo.
En fait quand tu fais ça:
<?= isset($POST['statut']) && $_POST['statut'] == 'prof_statut' ? 'selected' : null; ?>
C'est comme si tu faisais ça:
PHP
<?php
if(isset($_POST['statut']) && $_POST['statut'] == 'prof_statut') {
$selectedOrNot1 = "selected";
} else {
$selectedOrNot1 = "";
}
if(isset($_POST['statut']) && $_POST['statut'] == 'eleves_statut') {
$selectedOrNot1 = "selected";
} else {
$selectedOrNot1 = "";
}
?>
HTML
<select name="statut" style="width:125px;" class="entree"> <!--Liste déroulante-->
<option value="prof_statut" <?= $selectedOrNot1 ?> >prof</option>
<option value="eleves_statut" <?= $selectedOrNot2 ?>>eleve</option>
</select>
Ah et si ça marche pas c'est parce que un de tes $_POST est écrit comme ça $POST donc rajoute un _ là où il faut.
Voilà voilà 😄
leo_leclerc Le 21 avril 2017 à 23:08 (Édité le 1 janvier 1970 à 01:00)