[RESOLU] Selected sur une valeur donnée en base, dans menu déroulant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Selected sur une valeur donnée en base, dans menu déroulant

Re: [RESOLU] Selected sur une valeur donnée en base, dans menu déroulant

par Shadowwera » 12 mai 2021, 16:45

Salut gadje,

Si je ne me trompe pas tu cherche à mettre l'attribut "selected" à l'option de ton select qui correspond à ton entrée en BDD ?

Si en BDD ta valeur est 3, alors tu veux que ça retourne quelque chose dans ce genre la :
<select ... >
  <option value="1">AAA</option>
  <option value="2">BBB</option>
  <option value="3" selected>CCC</option>
</select>
Si c'est la cas, alors rien de bien compliqué ! Récupéré ta valeur puis compare la avec ta condition, si elle est respecté alors tu echo ton selected
<option value="3" <?php if($row_salarie['condition'] === "3") echo "selected" ?>>CCC</option>
Assure toi de faire ta comparaison sur un champs unique, afin d'éviter d'avoir plusieurs selected.

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 12 mai 2021, 15:07

J'ai également testé avec une boucle while à la place de la boucle foreach mais pas mieux.

Code : Tout sélectionner

while ($row_salarie = $resultListSalarie->fetch()) [code]

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 12 mai 2021, 14:06

Bon ben ça ne fonctionne toujours pas. je ne vois pas ce qui peut clocher.

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 11 mai 2021, 17:21

Effectivement, je vais modifier ça. Merci

Re: Selected sur une valeur donnée en base, dans menu déroulant

par or 1 » 11 mai 2021, 17:17

2 personnes peuvent-elles avoir le même prénom ? bien sur, donc se baser sur le prénom est une mauvaise idée. c'est l'id qu'il faut comparer, à $_GET['animReseau'] ou $row_suivi['anim_adh'] ou autre chose.

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 11 mai 2021, 17:11

Voila ce que j'ai fais, en suivant ton exemple mais ça ne fonctionne pas mieux malheureusement.

Code : Tout sélectionner

<select id="animReseau" name="animReseau"> <?php $sqlListSalarie = "SELECT * FROM employe WHERE anim_reseau=1"; $resultListSalarie = $mysql->query($sqlListSalarie); $reqPrenomAdh="SELECT * FROM suivi_adh"; $resultPrenomAdh = $mysql->query($reqPrenomAdh); $suiviAdh = $resultPrenomAdh->fetch(); foreach ($resultListSalarie as $row_salarie){ if($suiviAdh['anim_adh']==$row_salarie['prenom']) $defaut = "selected"; else $defaut =""; echo '<option value="'.$row_salarie['prenom'].'" '.$defaut.'>'.$row_salarie['prenom'].'</option>'; }; ?> </select>
Vois tu ce qui peut clocher ?

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 11 mai 2021, 16:50

Ok, donc je n'étais pas loin de la vérité avec ça ?

Code : Tout sélectionner

<select id="animReseau" name="animReseau"> <?php $sqlListSalarie = "SELECT * FROM employe WHERE anim_reseau=1"; $resultListSalarie = $mysql->query($sqlListSalarie); $reqPrenomAdh="SELECT * FROM suivi_adh"; $resultPrenomAdh = $mysql->query($reqPrenomAdh); $suiviAdh = $resultPrenomAdh->fetch(); foreach ($resultListSalarie as $row_salarie){ if($suiviAdh['anim_adh']==$_GET['animReseau']){ ?> <option selected value="<?php echo $row_salarie['prenom'] ?>"><?php echo $row_salarie['prenom'] ?></option> <?php } else{ ?> <option value="<?php echo $row_salarie['prenom'] ?>"><?php echo $row_salarie['prenom'] ?></option> <?php } }; ?> </select>

Re: Selected sur une valeur donnée en base, dans menu déroulant

par Ryle » 11 mai 2021, 16:19

Bon ben j'ai testé pas mal de chose mais rien qui ait fonctionné.
je ne vois pas comment stipuler sur quelle valeur faire mon selected.
Je ne peux pas faire un selected='xxxx' ?
Non ce n'est malheureusement pas comme ça que fonctionne le select en html. Par défaut, la première option est toujours sélectionnée :
<select ... >
  <option value="1">AAA</option>
  <option value="2">BBB</option>
  <option value="3">CCC</option>
</select>
Affichera AAA


Pour que celui-ci soit positionné sur une autre valeur, il faut ajouter l'attribut "selected" dans la balise option correspondante
<select ... >
  <option value="1">AAA</option>
  <option value="2">BBB</option>
  <option value="3" selected>CCC</option>
</select>
Ceci te permet de sélectionner la valeur 3 / CCC par défaut.

Il faut donc que dans ton code, lorsque tu génères dynamiquement les lignes d'option avec ta boucle, il faut que tu compares la valeur de la ligne tu es en train d'afficher, avec la valeur que tu veux mettre par défaut. Si ces deux valeurs sont identiques, alors tu ajoutes l'attribut selected dans l'option. Si par contre les valeurs sont différentes, alors tu n'ajoutes rien.
<select ... >
<?php 
$valeurDefaut = 3;
for ($i = 1; $i <= 3 ; $i++) {

  if ($i == $valeurDefaut)
    $defaut = "selected";
  else
    $defaut = '';

  echo '<option value="' . $i . '" ' . $defaut . '>' . $i . '</option>';
}
?>
</select>

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 11 mai 2021, 15:59

Comment ça, ce qui est attendu ?

Re: Selected sur une valeur donnée en base, dans menu déroulant

par or 1 » 11 mai 2021, 15:46

$prenomAnim = $resultAnimAdh->fetch();
echo $prenomAnim;
cela affiche ce qui est attendu ?

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 11 mai 2021, 15:42

Bon ben j'ai testé pas mal de chose mais rien qui ait fonctionné.
je ne vois pas comment stipuler sur quelle valeur faire mon selected.
Je ne peux pas faire un selected='xxxx' ?

Re: Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 10 mai 2021, 17:25

Ok je regarde ça.
Merci de ton retour.

Re: Selected sur une valeur donnée en base, dans menu déroulant

par Invité » 10 mai 2021, 17:24

Ok, je regarde ça.
Merci de ton retour.

Re: Selected sur une valeur donnée en base, dans menu déroulant

par Ryle » 10 mai 2021, 15:13

Salutations !

Afin de sélectionner une option par défaut dans un select, il suffit d'ajouter l'attribut "selected" dans l'option concernée (et uniquement dans celle-ci). Dans ton code, l'attribut selected est ajouté dans chaque option, ce qui n'est pas le résultat attendu.

Il te faut donc comparer les deux valeurs dans ta boucle et inclure l'attribut "selected" uniquement si celles-ci sont identiques, sinon, tu n'ajoutes pas l'attribut :)

Selected sur une valeur donnée en base, dans menu déroulant

par gadje » 10 mai 2021, 14:24

Bonjour,
je cherche à faire un selected sur une valeur d'un menu déroulant, indiquée en base de donnée avec un test d'égalité sur les id de 2 tables.

Code : Tout sélectionner

<td> <select id="animReseau" name="animReseau"> <?php //LISTE DES ANIMATEURS RESEAU $sqlListSalarie = "SELECT * FROM employe WHERE anim_reseau=1"; $resultListSalarie = $mysql->query($sqlListSalarie); //SELECTION DE L'ANIMATEUR RESEAU QUI SUIT L'ADHERENT $sqlAnimAdh = "SELECT prenom FROM employe WHERE id='".$row_suivi['anim_adh']."'"; $resultAnimAdh = $mysql->query($sqlAnimAdh); $prenomAnim = $resultAnimAdh->fetch(); foreach ($resultListSalarie as $row_salarie){ ?> <option selected="<?php echo $prenomAnim ?>" value="<?php echo $row_salarie['id'] ?>"><?php echo $row_salarie['prenom'] ?></option> <?php };?> </select> </td>
Merci d'avance à celles et ceux qui voudront bien se pencher sur mon problème.