Prendre des valeur d'une rquete et les mettre dans une combo box

AlecWeab Messages postés 3 Date d'inscription jeudi 5 février 2015 Statut Membre Dernière intervention 13 février 2015 - Modifié par Whismeril le 7/02/2015 à 07:50
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 7 févr. 2015 à 15:41
Bonjour, moi c'est alec j'ai compris comment sa ce passe ici donc voici mon problème
j'ai une table personnels ou il y a toutes les informations relative a un employé et j'aimerai mettre les matricule dans une liste de choix comme sa dès qu'on a choisi le matricule, les autres in formation pourront s'afficher voici mon code

                        <td> <select name="listemat" onchange=" form1.submit();"> 
      <?php
if(isset($_POST['listemat'])){
 //si la liste a été "postée" c ad choix fait
 $liste1=$_POST['listemat'];
}else{
 $liste1=-1;
}
?>
      <option value=-1>-- Choisissez -- </option> <!--  il faut cette ligne pour avoir obliagtoirement un changement -->
     <?php 
     $connection = mysql_connect('localhost', 'root', '');
     $base = mysql_select_db('appli_stage');

     $requete = "SELECT matricule_perso FROM personnels";
     $execution_requete = mysql_query($requete);
      while($total = mysql_fetch_array($execution_requete))
        {
         echo "<option value=\"".$total["matricule_perso"]."";
            //if($liste1==$total['matricule_perso']) 
         //{ echo "selected"; }//ça c'est pour garder la selection lors du réaffichage 
         echo ">".$total['matricule_perso']."</option>\n";
        }
     ?>
     </select></td>
            
           <?php
if($liste1 != -1){ //si on a fait un choix
 //on refait une requette avec une condition
 $requete = "SELECT nom_perso, prenom_perso FROM personnels WHERE matricule_perso='".$liste1."'";
 $execution_requete = mysql_query($requete);

 // on affiche les valeurs correspondantes au nom selectionné, pas besoin de boucle while, il n'y en aura qu'un
 $total = mysql_fetch_array($execution_requete);
 echo "<td>".$total['nom_perso']."</td> <td> ".$total['prenom_perso']."</td>";
}


//fermeture connexion à mysql
mysql_close();

?>


EDIT: Ajout de la coloration syntaxique.

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
7 févr. 2015 à 15:41
Bonjour,

moi c'est alec j'ai compris comment sa ce passe ici


Sauf que tu as oublié d'utiliser la coloration syntaxique (les balises de code) ...
Lire ceci pour comprendre : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Que tu as omis de nous dire quel était ton souci.....
Là .. tu nous dis ce que tu voudrais faire... tu nous donnes ton code... mais tu ne nous poses aucune question et nous indique aucun problème....



Au passage... quelques remarques sur ton code.

Dans la boucle te permettant de générer ta liste déroulante... tu peux écrire plus simplement comme ceci :

while($total = mysql_fetch_array($execution_requete)) {
$matricule =   $total['matricule_perso'];
$selected = ($liste1==$total['matricule_perso']) ? "selected='selected'":'';
  echo "<option value='$matricule' $selected>
             $matricule
            </option>";
 }  


Tu places le code de connexion à ta BDD directement dans tes pages...
     $connection = mysql_connect('localhost', 'root', '');
     $base = mysql_select_db('appli_stage');

...erreur.... il vaut mieux mettre ce code dans une page à part .. et en faire un INCLUDE lorsque tu en as besoin.
Sinon... le jour où tu changes ton site d'hébergeur... il faudra que tu ailles dans TOUTES tes pages modifier les identifiants de connexion.....


Je pense qu'avec un THIS devant le form.submit se serait mieux.
 <select name="listemat"  onchange='this.form.submit()>



Le bloc if isset... peut être simplifié ainsi :
 $liste1=isset($_POST['listemat'])?$_POST['listemat']:'-1';



Et pour finir .... actuellement tu travailles avec l'ancienne extension mysql.....
Je te conseille de passer aux nouvelles versions : mysqli ou PDO (perso.. je préfère la PDO)



0
Rejoignez-nous