Ne pas changer la valeur dans <select> lorsque l'on re actualise

Ce topic a été résolu
leo_leclerc

leo_leclerc Le 21 avril 2017 à 13:30 (Édité le 25 janvier 2019 à 17:53)

Bonjour j'ai suivi les tuto de PrimFX et j'ai utiliser ce bout de code pour permettre lorsque l'on clique sur envoyé de laisser ce qu'il y a dans le formulaire 
 <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

Zbuu Le 21 avril 2017 à 17:13

Bonjour 

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

leo_leclerc Le 21 avril 2017 à 17:33 (Édité le 21 avril 2017 à 17:49)

Bonjour merci pour votre réponse mais j'essaie de le comprendre aussi je suis débutant le ? apres 'm' ou 'f' il sert a quoi et le : null; il sert a quoi ?? Et j'ai une autre question au debut faire <?= c'est comme faire <?php ..??
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

TheOldNoob Le 21 avril 2017 à 19:02

C'est un opérateur ternaire conditionnel. On le vois de plus en plus : 
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/L_op%C3%A9rateur_conditionnel

et faire <?= est égale à <?php echo
Balatharas

Balatharas Le 21 avril 2017 à 19:25

C'est un opérateur ternaire conditionnel. On le vois de plus en plus :  
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/L_op%C3%A9rateur_conditionnel 

et faire <?= est égale à <?php echo
Grillé 😋
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

leo_leclerc Le 21 avril 2017 à 23:08

Un grand merci, j'ai regarder la video en entier et j'ai tout compris et sa fonctionne bien.
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte