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

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

Votre réponse

23 réponses

Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- Modifié par jordane45 le 17/06/2014 à 10:43
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
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 17 juin 2014 à 10:44
$sel1 =( $valSelect ==  "Administrateur")? "selected='selected'":'';
$sel2 =( $valSelect ==  "Visiteur")? "selected='selected'":'';
$sel3 =( $valSelect ==  "Moderateur")? "selected='selected'":'';
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 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>";
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 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>

Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 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.
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 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
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 17 juin 2014 à 11:26
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>

Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 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....
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 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);?>

Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 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......
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 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' ";
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 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
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- Modifié par Cocob84 le 17/06/2014 à 15:22
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
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 17 juin 2014 à 15:28
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>        



Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 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
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 17 juin 2014 à 19:43
Result est un array.
Il te faut donc utiliser print_r ($result) et non un echo
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 17 juin 2014 à 19:46
a mince je vais y arriver ^^
Array ( [Login] => admin [Password] => admin [Nom] => admin [Prenom] => admin [Droits] => Moderateur )
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 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
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 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.