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

Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 17 juin 2014 à 09:07 - Dernière réponse : Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention
- 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 

23 réponses

Répondre au sujet
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - Modifié par jordane45 le 17/06/2014 à 10:43
0
Utile
6
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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 10:44
$sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
$sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
$sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 10:46
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 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 17 juin 2014 à 10:53
"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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 10:56
Tu as regardé ce que vaut ta variable DROITS ??

-> Fais donc un print_r sur $_POST et colles nous ce qui apparait.
Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 17 juin 2014 à 11:14
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
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 11:26
0
Utile
6
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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 12:13
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 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 17 juin 2014 à 12:27
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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 12:54
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 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 17 juin 2014 à 13:09
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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 15:12
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
Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - Modifié par Cocob84 le 17/06/2014 à 15:22
0
Utile
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
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 15:28
0
Utile
7
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 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 17 juin 2014 à 19:18
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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 19:43
Result est un array.
Il te faut donc utiliser print_r ($result) et non un echo
Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 17 juin 2014 à 19:46
a mince je vais y arriver ^^
Array ( [Login] => admin [Password] => admin [Nom] => admin [Prenom] => admin [Droits] => Moderateur )
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 17 juin 2014 à 22:15
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 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 18 juin 2014 à 08:30
A oui c'est bon sa marche niquel
Merci Beaucoup A bientôt
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.