Garder un champ d'un select selected

Résolu
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai besoin de votre aide, cela fait maintenant des tonnes d'heures que je bug sur un petit bout de code qui m'énerveeeeeee !! Je n'arrive pas à voir l'erreur ..

Alors voilà, ma demande est simple, je réalise un formulaire de modification de profil, donc les informations de la personne sont près rempli. Tous les champs fonctionnes sauf mon select ..

Je récupère bien les informations, mon select fonctionne, mais c'est au moment de le garder selected que je bloque.

Es ce que quelqu'un peut m'aider svpp :D !

Merci par avance
<div class="form-group">
<div class="col-md-8">
<label for="region">Votre region :</label>
<select name="region" id="region" class="form-control">
<option value="ras">Selectionnez</option>
<?php
$query = $mysqli -> query("SELECT * FROM region");

$nb = $query -> num_rows;


if($nb > 0){
while($row = $query -> fetch_array()){
//Récupération de tous les id_region dans la table région
$id_regionall = $row["id_region"];
$id_regionall = intval($id_regionall);
//Récupération du nom des région dans la table région
$regionall = utf8_encode($row["region"]);
//echo "<option value=\"$id_region\">".$regionall."</option>";


echo "<option value=\"$id_regionall\" if((isset($id_region)&&($id_regionall==\"$id_region\"))) echo \"selected=\"selected\";>$regionall</option>";

}
}
?>
</select>

($id_region est récupéré de la table user plus haut)

6 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, quelle erreur obtiens-tu?
0
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Je n'ai aucune erreur mais cela ne fonctionne pas .. Le champ ne reste pas selectionné quand je post le formulaire et aussi quand j'arrive sur la page il ne me selectionne pas celui qui est en BDD ..
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
As-tu regardé le code généré ?
Tu peux poster le résultat ?
0
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
oui alors le code généré :

<option value="1" if ((if((isset(2))&&(2="="1"))" echo "selected="selected";>Auvergne</option>
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
1) as-tu copié ton code exact?
echo "<option value=\"$id_regionall\" if((isset($id_region)&&($id_regionall==\"$id_region\"))) echo \"selected=\"selected\";>$regionall</option>";

2) peux-tu montrer la section "select" extraite du code source de ta page?
0
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Oui j'ai copié le code exact.

<select name="region" id="region" class="form-control">
<option value="ras">Selectionnez</option>
<option value="1" if((isset(3)&&(1=="3"))) echo "selected="selected";>Auvergne Rhône Alpes</option>

<option value="2" if((isset(3)&&(2=="3"))) echo "selected="selected";>Bourgogne Franche Comté</option>

<option value="3" if((isset(3)&&(3=="3"))) echo "selected="selected";>Bretagne</option>

<option value="4" if((isset(3)&&(4=="3"))) echo "selected="selected";>Centre Val de Loire</option>

<option value="5" if((isset(3)&&(5=="3"))) echo "selected="selected";>Corse</option>

<option value="6" if((isset(3)&&(6=="3"))) echo "selected="selected";>Grand Est</option>

<option value="7" if((isset(3)&&(7=="3"))) echo "selected="selected";>Hauts de France</option>

<option value="8" if((isset(3)&&(8=="3"))) echo "selected="selected";>ÃŽle de France</option>

<option value="9" if((isset(3)&&(9=="3"))) echo "selected="selected";>Normandie</option>

<option value="10" if((isset(3)&&(10=="3"))) echo "selected="selected";>Nouvelle Aquitaine</option>

<option value="11" if((isset(3)&&(11=="3"))) echo "selected="selected";>Occitanie</option>

<option value="12" if((isset(3)&&(12=="3"))) echo "selected="selected";>Pays de la Loire</option>

<option value="13" if((isset(3)&&(13=="3"))) echo "selected="selected";>Provence Alpes Côte d'Azur</option>

<option value="14" if((isset(3)&&(14=="3"))) echo "selected="selected";>Guadeloupe</option>

<option value="15" if((isset(3)&&(15=="3"))) echo "selected="selected";>Guyane</option>

<option value="16" if((isset(3)&&(16=="3"))) echo "selected="selected";>Martinique</option>

<option value="17" if((isset(3)&&(17=="3"))) echo "selected="selected";>Réunion</option>

<option value="18" if((isset(3)&&(18=="3"))) echo "selected="selected";>Mayotte</option>

</select>

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
et ainsi?
echo "<option value=\"$id_regionall\";
if((isset($id_region)&&($id_regionall==$id_region))
{
     echo " selected";
}
echo >$regionall</option>";

si cela ne fonctionne pas, peux-tu montrer la section "select" extraite du code source de ta page?
0
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai enlevé les guillemets autour du selected car sinon j'avais une erreur..

voici la partie du code source de la page :


<select name="region" id="region" class="form-control">
<option value="ras">Selectionnez</option>
<option value="1";
if((isset(1)&&(1==1))
{
echo selected;
}
echo >Auvergne Rhône Alpes</option>

<option value="2";
if((isset(1)&&(2==1))
{
echo selected;
}
echo >Bourgogne Franche Comté</option>

<option value="3";
if((isset(1)&&(3==1))
{
echo selected;
}
echo >Bretagne</option>

<option value="4";
if((isset(1)&&(4==1))
{
echo selected;
}
echo >Centre Val de Loire</option>

<option value="5";
if((isset(1)&&(5==1))
{
echo selected;
}
echo >Corse</option>

<option value="6";
if((isset(1)&&(6==1))
{
echo selected;
}
echo >Grand Est</option>

<option value="7";
if((isset(1)&&(7==1))
{
echo selected;
}
echo >Hauts de France</option>

<option value="8";
if((isset(1)&&(8==1))
{
echo selected;
}
echo >ÃŽle de France</option>

<option value="9";
if((isset(1)&&(9==1))
{
echo selected;
}
echo >Normandie</option>

<option value="10";
if((isset(1)&&(10==1))
{
echo selected;
}
echo >Nouvelle Aquitaine</option>

<option value="11";
if((isset(1)&&(11==1))
{
echo selected;
}
echo >Occitanie</option>

<option value="12";
if((isset(1)&&(12==1))
{
echo selected;
}
echo >Pays de la Loire</option>

<option value="13";
if((isset(1)&&(13==1))
{
echo selected;
}
echo >Provence Alpes Côte d'Azur</option>

<option value="14";
if((isset(1)&&(14==1))
{
echo selected;
}
echo >Guadeloupe</option>

<option value="15";
if((isset(1)&&(15==1))
{
echo selected;
}
echo >Guyane</option>

<option value="16";
if((isset(1)&&(16==1))
{
echo selected;
}
echo >Martinique</option>

<option value="17";
if((isset(1)&&(17==1))
{
echo selected;
}
echo >Réunion</option>

<option value="18";
if((isset(1)&&(18==1))
{
echo selected;
}
echo >Mayotte</option>

</select>
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
et ainsi?
echo "<option value=\"".$id_regionall."\"";
if((isset($id_region)&&($id_regionall==$id_region))
{
     echo " selected";
}
echo ">".$regionall."</option>";
0
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Toujours pas .. Merci pour ton aide en tout cas ..


<select name="region" id="region" class="form-control">
<option value="ras">Selectionnez</option>
<option value="1";
if((isset(3)&&(1==3))
{
echo selected;
}
> Auvergne Rhône Alpes</option>

<option value="2";
if((isset(3)&&(2==3))
{
echo selected;
}
> Bourgogne Franche Comté</option>

<option value="3";
if((isset(3)&&(3==3))
{
echo selected;
}
> Bretagne</option>

<option value="4";
if((isset(3)&&(4==3))
{
echo selected;
}
> Centre Val de Loire</option>

<option value="5";
if((isset(3)&&(5==3))
{
echo selected;
}
> Corse</option>

<option value="6";
if((isset(3)&&(6==3))
{
echo selected;
}
> Grand Est</option>

<option value="7";
if((isset(3)&&(7==3))
{
echo selected;
}
> Hauts de France</option>

<option value="8";
if((isset(3)&&(8==3))
{
echo selected;
}
> ÃŽle de France</option>

<option value="9";
if((isset(3)&&(9==3))
{
echo selected;
}
> Normandie</option>

<option value="10";
if((isset(3)&&(10==3))
{
echo selected;
}
> Nouvelle Aquitaine</option>

<option value="11";
if((isset(3)&&(11==3))
{
echo selected;
}
> Occitanie</option>

<option value="12";
if((isset(3)&&(12==3))
{
echo selected;
}
> Pays de la Loire</option>

<option value="13";
if((isset(3)&&(13==3))
{
echo selected;
}
> Provence Alpes Côte d'Azur</option>

<option value="14";
if((isset(3)&&(14==3))
{
echo selected;
}
> Guadeloupe</option>

<option value="15";
if((isset(3)&&(15==3))
{
echo selected;
}
> Guyane</option>

<option value="16";
if((isset(3)&&(16==3))
{
echo selected;
}
> Martinique</option>

<option value="17";
if((isset(3)&&(17==3))
{
echo selected;
}
> Réunion</option>

<option value="18";
if((isset(3)&&(18==3))
{
echo selected;
}
> Mayotte</option>

</select>

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
tu as vraiment utilisé ceci?
echo "<option value=\"".$id_regionall."\"";
if((isset($id_region)&&($id_regionall==$id_region))
{
     echo " selected";
}
echo ">".$regionall."</option>";
0
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Nan j'ai modifié parce que j'ai une erreur :
Parse error: syntax error, unexpected 'echo' (T_ECHO)

c'est une erreur à la ligne 4 (echo " selected";)

Moi j'avais du coup changé en mettant :

echo "<option value=\"$id_regionall\";
if((isset($id_region)&&($id_regionall==$id_region))
{
echo selected;
}
> $regionall</option>";
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Il suffit de faire comme ceci :
<div class="form-group">
  <div class="col-md-8">
  <label for="region">Votre region :</label>
  <select name="region" id="region" class="form-control">
    <option value="ras">Selectionnez</option>
    <?php
    $query = $mysqli->query("SELECT * FROM region");
    
    $nb = $query->num_rows;
     
    if($nb > 0){
      while($row = $query -> fetch_array()){
        //Récupération de tous les id_region dans la table région
        $id_regionall = intval($row["id_region"]);

        //Récupération du nom des région dans la table région
        $regionall = utf8_encode($row["region"]);
                       
        $selected =  isset($id_region)&&($id_regionall==$id_region ? " selected='selected' " : "";     
        echo "<option value='$id_regionall' $selected >$regionall</option>";
    
      }
    }  
    ?>
  </select>


Si jamais ça ne fonctionne toujours pas ...
pourrais tu , avant ta boucle ajouter quelques echo histoire de voir ce que contiennent tes variables...
par exemple :

if($nb > 0){

      echo '<br>id_region :' . $id_region; //le temps des tests

      while($row = $query -> fetch_array()){
        //Récupération de tous les id_region dans la table région
        $id_regionall = intval($row["id_region"]);
         echo '<br>id_regionall :' .$id_regionall;      
 
        //Récupération du nom des région dans la table région
        $regionall = utf8_encode($row["region"]);
                       
        $selected =  isset($id_region)&&($id_regionall==$id_region ? " selected='selected' " : "";     
        echo "<option value='$id_regionall' $selected >$regionall</option>";
    
      }
    }  


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
NB: Si tu as besoin de faire de l'utf8_encode dans ton code .. c'est que tu n'as pas correctement mis ton site et ta bdd en utf8...
Je te conseille d'appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
0
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ! Ça fonctionne. Vraiment merci c'est top !!
Et pour l'encodage de ma bdd c'est en local, tu as raison j'ai du mal faire le parametrage. En tout cas mercii encore
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
echo "<option value=\"".$id_regionall."\"";
if((isset($id_region))&&($id_regionall==$id_region))
{
     echo " selected";
}
echo ">".$regionall."</option>";
-1
Charleeeee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Ça fonctionne avec ta proposition pour récupérer l'id region qui est en bdd mais du coup pas l'id posté du form. Mais du coup la personne au dessus m'a donné un autre bout de code .

Merci beaucoup beaucoup du temps que tu as consacré pour m'aider, vraiment. Tes différents tests m'ont permis de mieux testé par la suite.
Alors merci à toi :)
0