Garder un champ d'un select selected

Résolu/Fermé
Charleeeee Messages postés 13 Date d'inscription jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017 - 1 juin 2017 à 21:29
Charleeeee Messages postés 13 Date d'inscription jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017 - 2 juin 2017 à 00:13
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 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
1 juin 2017 à 22:12
bonsoir, quelle erreur obtiens-tu?
0
Charleeeee Messages postés 13 Date d'inscription jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017
1 juin 2017 à 22:15
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 15163 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 1 novembre 2024 345
1 juin 2017 à 22:20
As-tu regardé le code généré ?
Tu peux poster le résultat ?
0
Charleeeee Messages postés 13 Date d'inscription jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017
1 juin 2017 à 22:30
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 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
1 juin 2017 à 22:39
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017
1 juin 2017 à 22:43
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 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
1 juin 2017 à 22:52
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017
1 juin 2017 à 22:58
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 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
Modifié le 1 juin 2017 à 23:07
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017 > yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024
1 juin 2017 à 23:09
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 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
1 juin 2017 à 23:16
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017
1 juin 2017 à 23:19
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 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
1 juin 2017 à 23:19
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 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
1 juin 2017 à 23:20
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017
2 juin 2017 à 00:12
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 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
1 juin 2017 à 23:25
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 3 juin 2017
2 juin 2017 à 00:13
Ç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