copier mes listes déroulantes

copier mes listes déroulantes - PHP - Programmation

Marsh Posté le 20-01-2006 à 12:45:13    

Bonjour.    J'ai 2 fichiers .php  --->  index.php  et  liresc.php (ci-dessous) et une base MySQL. Ces 2 fichiers me permettent de créer une liste déroulante et de la remplir grâce aux données présentes dans ma base. De plus une 2ème liste déroulante est crée et dépend de ma 1ère liste.  Exemple :  Dans ma 1ère liste je clique sur l'activité "Informatique", et dans la 2ème liste s'affiche les métiers liés à cette activité : "Administrateur réseau" / "Commercial informatique" / "Vendeur informatique" . Je voudrai que 2 autres listes déroulantes apparaissent à côté de mes 2 premières. (pour que vous puissiez m'aider on dira que ces listes seront identiques aux 2 premières). J'ai tenté des "copier / coller" tout simplement, malheureusement ça ne doit pas marcher comme ça ...   Merci de m'aider. Attention, merci de bien détailler vos réponses car j'ai encore un peu de mal avec la programmation...
   
Voici mes 2 fichiers (entiers) :  
   
   
index.php  
   
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
    <script type="text/javascript">  
 /**  
  * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest  
  */  
 function sendData(param, page)  
 {  
  if(document.all)  
  {  
   //Internet Explorer  
   var XhrObj = new ActiveXObject("Microsoft.XMLHTTP" ) ;  
  }//fin if  
  else  
  {  
      //Mozilla  
   var XhrObj = new XMLHttpRequest();  
  }//fin else  
   
  //définition de l'endroit d'affichage:  
  var content = document.getElementById("contenu" );  
   
  XhrObj.open("POST", page);  
   
  //Ok pour la page cible  
  XhrObj.onreadystatechange = function()  
  {  
   if (XhrObj.readyState == 4 && XhrObj.status == 200)  
    content.innerHTML = XhrObj.responseText ;  
  }  
   
   
 if (XhrObj.readyState == 4 && XhrObj.status == 200) {  
    content._innerhtml = XhrObj.responseText ;  
    alert(XhrObj.responseText);  
   }  
   
   
  XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');  
  XhrObj.send(param);  
 }//fin fonction SendData  
   
    </script>  
</head>  
<body>  
   
<?php  
   // Paramètres de la Connexion à la base MYSQL  
   $user="root";  
   $host="localhost";  
   $password="";  
   $database="ma_base";  
   $i=0; // variable de test  
   $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage  
         
   $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible" );  
     
   mysql_select_db($database);  
     
   // Séléction de tous les enregistrements de la table activite  
   $rq="Select * from activite;";  
      $result= mysql_query ($rq) or die ("Select impossible" );  
      echo "<form method='POST' action='valid.php'>";  
     
   
     ?>   <select size="1" name="cat" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">  
   
<?php      
   
 
   while ($dt=mysql_fetch_row($result))  
   {  
    // Remplir la liste déroulante des catégories  
 echo "<option value=".($dt[0]).">".($dt[1])."</option>";  
    if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement  
   }  
     
   ?>      
   </select>  
     
   <br><br>  
      <div id="contenu">  
   
   
  <?php    
  // affichage des sous-catégorie appartenant à la première catégorie.  
   echo "<select size='1' name='souscat'>";    
    $rq="Select * metier where metier.nummetier=client.nummetier And client.numact=activite.numact=".$j." order by nommetier;";  
    $result= mysql_query ($rq) or die ("Select impossible" );  
   
      // $i = initialise le variable i  
    $i=0;  
    while ($dt=mysql_fetch_row($result))  
    {  
  echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[1])."</option>";  
    }      
 echo "</select>";  
   
   ?>  
       
</div>  
</form>  
   
<p>&nbsp;</p>  
   
<br><br>  
   
   
 
liresc.php

   
<?php  
header('Content-type: plain/text') ; // on déclare ce qui va être afficher  
   
// test des POST emis  
if(isset($_POST['id']) && !empty($_POST['id']) ){  
   $user="root";  
   $host="localhost";  
   $password="";  
   $database="ma_base";  
   $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible" );    
   mysql_select_db($database);  
    $rq="SELECT *  
FROM `metier` , `client` , `activite`  
WHERE `metier`.nummetier = `client`.fk_id_nummetier  
AND `client`.fk_id_numact = `activite`.numact  
AND `activite`.numact=".$_POST['id']." order by nommetier;";  
    $res= mysql_query ($rq) or die ("Select impossible" );  
   
   
     // $i = initialise le variable i  
    $i=0;  
   
 if (mysql_num_rows($res)>0)  
 {  
   echo "<select size='1' name='souscat'>";  
 }  
 else  
 {  
   echo utf8_encode("Pas de sous catégories disponible" );  
 }  
    while ($dt=mysql_fetch_row($res))  
    {    
  echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[1])."</option>";  
    }      
 echo "</select>";  
   
}  
   
   
?>  
 

Reply

Marsh Posté le 20-01-2006 à 12:45:13   

Reply

Marsh Posté le 20-01-2006 à 13:04:04    

Met ton code entre [code] quand tu postes sur le forum, ca rendra l'ensemble plus lisible.
De plus en cas comme celui ci, commence par vérifier le texte renvoyé par php. Ca te permettra de voir où se situe l'erreur : dans la page php ou dans le javascript.
 
Une fois que t'auras fait ça, ca sera plus simple de chercher l'origine du probléme. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed