Liste Déroulante Garder la saisie [Résolu]

Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
- - Dernière réponse : Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
- 18 juin 2014 à 08:30
Bonjour

J'ai effectuer une liste déroulante comme ceci:
Pour modifier le champs "droits" dans ma bdd

                    <tr align="center">
                        <td>Droits</td>
 
     <td> 
            <select name="Droits" id="Droits">
                <option value="Administrateur">Administrateur </option>
                <option value="Visiteur">Visiteur</option>
                <option value="Moderateur">Moderateur</option>
           </select></br>
     </td>



Quand je sélectionne exemple 'visiteur" dans ma liste déroulante et que je valide il le saisie bien dans ma bdd.la requêtes s'effectue bien .
Le souci c'est quand je veut a nouveau modifier ,La liste déroulante ne garde pas la valeur saisie soit ici :"visiteur" dans le premier terme de la liste déroulante

Je pense qu'il faut utiliser selected=selected ou/et Option selected mais je sais pas comment je peut faire.

Merci D'avance
Afficher la suite 

4 réponses

Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318
0
Merci
Bonjour,

Imaginons que tu utilises une FORM avec la méthod POST pour l'envoie de tes données...

Le code pourrait donner quelque chose du genre au niveau du select :


<?php

if(isset($_POST['Droits']){
$valSelect = $_POST['Droits'];
$sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
$sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
$sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
        
     Echo "<select name='Droits' id='Droits'>
                <option value='Administrateur' $sel1>Administrateur </option>
                <option value='Visiteur' $sel2>Visiteur</option>
                <option value='Moderateur' $sel3>Moderateur</option>
           </select></br>";


}
?>





Edit : correction : oublie d'un guillemet dans les variables


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
$sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
$sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
$sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
Et pourquoi avoir changé le ECHO ?

     Echo "<select name='Droits' id='Droits'>
                <option value='Administrateur' $sel1>Administrateur </option>
                <option value='Visiteur' $sel2>Visiteur</option>
                <option value='Moderateur' $sel3>Moderateur</option>
           </select></br>";
Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
"Et pourquoi avoir changé le ECHO ?" Pour tester dans ma page il étais pas en blue

Marche toujours pas
J'ai test sa j'arrive toujours pas afficher ma page

                    <tr align="center">
                    <td>Droits</td>
                    <td>
                        <?php
                        
                    if(isset($_POST['Droits']){
                        $valSelect = $_POST['Droits'];
                        $sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
                        $sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
                        $sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
                                
                             Echo "<select name='Droits' id='Droits'>
                                        <option value='Administrateur' $sel1>Administrateur </option>
                                        <option value='Visiteur' $sel2>Visiteur</option>
                                        <option value='Moderateur' $sel3>Moderateur</option>
                                   </select></br>";
                        
                        
                        }
                        ?>
        
                    </td>

jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
Tu as regardé ce que vaut ta variable DROITS ??

-> Fais donc un print_r sur $_POST et colles nous ce qui apparait.
Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
Avec mon code:
La modification a été correctement effectuée
droits:Administrateur
echo"droits:"; print_r($_POST['Droits']);


et avec ce que tu ma donner j'arrive pas a avoir accès au formulaire donc je peut pas voir la variable
Commenter la réponse de jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318
0
Merci
Je voudrais que tu fasses un print_r($_POST) au niveau du code que je t'ai donné....

<tr align="center">
                    <td>Droits</td>
                    <td>
                        <?php

//----------------------------------------                     
echo "<pre>";
echo " Variables POST = <br>";
print_r($_POST);
echo "</pre>";
//--------------------------------------   
                    if(isset($_POST['Droits']){
                        $valSelect = $_POST['Droits'];
                        $sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
                        $sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
                        $sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
                                

//----------------------------------------                     
echo "<pre>";
echo " Variables SEL = <br>";
echo "sel1 : ".$sel1."<br>";
echo "sel2 : ".$sel1."<br>";
echo "sel3 : ".$sel1."<br>";
echo "</pre>";
//--------------------------------------

                             Echo "<select name='Droits' id='Droits'>
                                        <option value='Administrateur' $sel1>Administrateur </option>
                                        <option value='Visiteur' $sel2>Visiteur</option>
                                        <option value='Moderateur' $sel3>Moderateur</option>
                                   </select></br>";
                        
                        
                        }
                        ?>
        
                    </td>

jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
Comme tu peux le constater.... ta variable POST est vide....;

A quel moment souhaites tu afficher la sélection dans ta liste ?
Après avoir soumis ton formulaire ??
Ou bien... lorsque tu réaffiche ta page ?

Car si c'est lors de l'affichage de ta page.... il faut que tu fasses une requête dans ta BDD pour aller rechercher l'info....
Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
Quand je suis dans le formulaire pour modifier je sélectionne le droits choisie exemple "Visiteur" j'appuie sur valider
sa modifie dans ma bdd,
et quand je reclick sur modifier sa m'amène sur a nouveau sur le formulaire dans droits la première option est toujours administrateur n'est pas cèle que je sélectionne juste avant soit "visiteur"

je voudrais que le choix numéro 1 de la liste déroulante soit celle qui est dans la bdd pour que le client quand il modifie il voie en quel droits et
l'utilisateur.

Dans le formulaire j'ai mis sa le souci c'est que comme sa me le répéte 2 fois


<option selected><?php echo($result->Droits);?>

jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
je voudrais que le choix numéro 1 de la liste déroulante soit celle qui est dans la bdd
Donc... il te faut REQUETER ta BDD pour avoir les informations qui s'y trouvent......
Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
Oui sa me donne ceci quand je sélectionne "Visiteur" et que je le modifie
http://hpics.li/0433ca1
avec comme requetes
   $id  = $_GET["idCompte"] ;
 
  //requête SQL:
    $sql = "SELECT * From Compte Where Login = '$id' ";
jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
Ok... tu as une requête.... et ensuite ? Comment tu l'utilises ?
Fais voir le code du mysql_query.

$id  = isset($_GET["idCompte"])?$_GET["idCompte"]'0' ;

//--------------------------------- 
 //requête SQL:
//---------------------------------
    $sql = "SELECT * 
               FROM Compte 
              WHERE Login = '$id' ";

  // Exécution de la requête :
$result = mysql_query($sql);

if (!$result) {
     die('Requête invalide : ' . mysql_error() . " Requête :".$sql);
   }

// Le traitement de la requête
while ($row = mysql_fetch_assoc($result)) {
      // Le code qui affiche les éléments récupérés par ta requete :
        $valSelect = $row ['Droits'];
                      
}

// Le reste de ton code....


// Puis l'affichage du select
                      $sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
                        $sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
                        $sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
                                
                        Echo "<select name='Droits' id='Droits'>
                                        <option value='Administrateur' $sel1>Administrateur </option>
                                        <option value='Visiteur' $sel2>Visiteur</option>
                                        <option value='Moderateur' $sel3>Moderateur</option>
                                   </select></br>";



// Le reste de ton code....
Commenter la réponse de jordane45
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
0
Merci
D'accord
Page ModifiUtilisateur
   $id  = $_GET["idCompte"] ;
 
  //requête SQL:
    $sql = "SELECT * From Compte
               Where Login = '$id' ";
  
  
  //exécution de la requête:
  $requete = mysql_query($sql);
 
 
  //affichage des données:
    if( $result = mysql_fetch_object( $requete ) )
  {
  ?>
<center>

<form method="POST" action="Modifuser2.php" enctype="multipart/form-data">
<center>
   <table>         
            <input type="hidden" name="Login" value="<?php echo($id) ;?>">
            
            
                    <tr align="center">
                        <td>Login</td>
                        <td><input type="text" name="Login"  value="<?php echo($result->Login) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Password</td>
                        <td><input type="text" name="Password" value="<?php echo ($result->Password) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Nom</td>
                        <td><input type="text" name="Nom" value="<?php echo($result->Nom) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Prénom</td>
                        <td><input type="text" name="Prenom" value="<?php echo($result->Prenom) ;?>"></td>
                    </tr>
                   <tr align="center">
                    <td>Droits</td>
                    <td>
                        
                             <select name='Droits' id='Droits'>
                                        <option value="Administrateur">Administrateur </option>
                                        <option value="Visiteur">Visiteur</option>
                                        <option value="Moderateur">Moderateur</option>
                                        <option selected><?php echo($result->Droits);?>
                                   </select></br>
                       
    
                    </td>
                         
                        <tr align="center">
                        <td> </td>
                        <td><input type="submit" name="envoyer" value="Modifier"></td>
                    </tr>
    
                   </table>
                   <br>
                   <a href="Utilisateur.php" class="bouton">Retour</a>
                </center>
            </form>        
 
<?php


Page ModifiUtilisateur2


//récupération des valeurs des champs:
  //nom:
  $log    = $_POST["Login"] ;
  $pas    = $_POST["Password"] ;
  $nom    = $_POST["Nom"] ;
  $pre    = $_POST["Prenom"] ;
  $droi   = $_POST["Droits"] ;


  //récupération de l'identifiant de la personne:
  $id      = $_POST["Login"] ;
  

  //création de la requête SQL:
  
   $sql = "UPDATE Compte
            SET Login    = '$log'    , 
            Password      = '$pas'   ,
            Nom           = '$nom'   ,
            Prenom        = '$pre'   ,
            Droits        = '$droi'   
            WHERE Login  = '$id' "   ;
             mysql_query($sql);
             

  //affichage des résultats, pour savoir si la modification a marchée:
$result = mysql_query($sql);
$nbRows = mysql_num_rows($result);

if($nbRows >0) 
  {
    echo("La modification à échouée") ;
    
  }
  else
  {
      echo("La modification a été correctement effectuée");
      echo"droits:"; print_r($_POST['Droits']);

  }
?>







Commenter la réponse de Cocob84
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318
0
Merci
C'est bien dans la page : Page ModifiUtilisateur que tu dois mettre le code en effet...
Mais pas TOUTE ta FORM dans la boucle While.......

Tu as regardé ce que je t'ai donné comme code ????


Ca devrait à peu prêt ressembler à ça :
(A toi de l'adapter si besoin...)
$id  = isset($_GET["idCompte"])?$_GET["idCompte"]'0' ;

//--------------------------------- 
 //requête SQL:
//---------------------------------
    $sql = "SELECT * 
               FROM Compte 
              WHERE Login = '$id' ";

  // Exécution de la requête :
$result = mysql_query($sql);

if (!$result) {
     die('Requête invalide : ' . mysql_error() . " Requête :".$sql);
   }

// Le traitement de la requête
$result= mysql_fetch_assoc($result))



// Le reste de ton code....
?>
<center>

<form method="POST" action="Modifuser2.php" enctype="multipart/form-data">
<center>
   <table>         
            <input type="hidden" name="Login" value="<?php echo($id) ;?>">
            
            
                    <tr align="center">
                        <td>Login</td>
                        <td><input type="text" name="Login"  value="<?php echo($result->Login) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Password</td>
                        <td><input type="text" name="Password" value="<?php echo ($result->Password) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Nom</td>
                        <td><input type="text" name="Nom" value="<?php echo($result->Nom) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Prénom</td>
                        <td><input type="text" name="Prenom" value="<?php echo($result->Prenom) ;?>"></td>
                    </tr>
                   <tr align="center">
                    <td>Droits</td>
                    <td>
                        

<?php

   $valSelect = $result->Droits;
                      
                      $sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
                        $sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
                        $sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
                                
                        Echo "<select name='Droits' id='Droits'>
                                        <option value='Administrateur' $sel1>Administrateur </option>
                                        <option value='Visiteur' $sel2>Visiteur</option>
                                        <option value='Moderateur' $sel3>Moderateur</option>
                                   </select></br>";

?>

 </td>
                         
                        <tr align="center">
                        <td> </td>
                        <td><input type="submit" name="envoyer" value="Modifier"></td>
                    </tr>
    
                   </table>
                   <br>
                   <a href="Utilisateur.php" class="bouton">Retour</a>
                </center>
            </form>        



Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
je savais pas j'ai essayer j'ai essaye de changer les guillemets du 0 mais c'était pas sa c'est bon corriger ici
Mais dans le formulaire il y a pas les résultats

j'ai fais un Echo de la requêtes elle affiche bien la requêtes :
SELECT * FROM Compte WHERE Login = 'admin'


aussi un Echo de la variable résult et m'affiche que :
Array
jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
Result est un array.
Il te faut donc utiliser print_r ($result) et non un echo
Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
a mince je vais y arriver ^^
Array ( [Login] => admin [Password] => admin [Nom] => admin [Prenom] => admin [Droits] => Moderateur )
jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
Pour l'utilisation des données je t'ai mis, par habitude, mysql_fetch_assoc...
Hors toi, tu passes par object....

$result = mysql_fetch_object( $requete);





id  = isset($_GET["idCompte"])?$_GET["idCompte"]'0' ;

//--------------------------------- 
 //requête SQL:
//---------------------------------
    $sql = "SELECT * 
               FROM Compte 
              WHERE Login = '$id' ";

  // Exécution de la requête :
$req= mysql_query($sql);

if (!$req) {
     die('Requête invalide : ' . mysql_error() . " Requête :".$sql);
   }

// Le traitement de la requête
$result= mysql_fetch_object($req))



// Le reste de ton code....
?>
<center>

<form method="POST" action="Modifuser2.php" enctype="multipart/form-data">
<center>
   <table>         
            <input type="hidden" name="Login" value="<?php echo($id) ;?>">
            
            
                    <tr align="center">
                        <td>Login</td>
                        <td><input type="text" name="Login"  value="<?php echo($result->Login) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Password</td>
                        <td><input type="text" name="Password" value="<?php echo ($result->Password) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Nom</td>
                        <td><input type="text" name="Nom" value="<?php echo($result->Nom) ;?>"></td>
                    </tr>
                    <tr align="center">
                        <td>Prénom</td>
                        <td><input type="text" name="Prenom" value="<?php echo($result->Prenom) ;?>"></td>
                    </tr>
                   <tr align="center">
                    <td>Droits</td>
                    <td>
                        

<?php

   $valSelect = $result->Droits;
                      
                      $sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
                        $sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
                        $sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
                                
                        Echo "<select name='Droits' id='Droits'>
                                        <option value='Administrateur' $sel1>Administrateur </option>
                                        <option value='Visiteur' $sel2>Visiteur</option>
                                        <option value='Moderateur' $sel3>Moderateur</option>
                                   </select></br>";

?>

 </td>
                         
                        <tr align="center">
                        <td> </td>
                        <td><input type="submit" name="envoyer" value="Modifier"></td>
                    </tr>
    
                   </table>
                   <br>
                   <a href="Utilisateur.php" class="bouton">Retour</a>
                </center>
            </form>





</cpde
Cocob84
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
A oui c'est bon sa marche niquel
Merci Beaucoup A bientôt
Commenter la réponse de jordane45