Probleme ajax listes liées

Probleme ajax listes liées - HTML/CSS - Programmation

Marsh Posté le 18-05-2009 à 16:08:56    

Bonjour à tous je post car j'ai un probleme avec les listes liées en ajax. En effet j'ai lu et appliqué le tutoriel : http://siddh.developpez.com/articles/ajax/#LIV-A concernant 2 listes liées cependant je n'arrive pas à en lié plus que 2 ce qui est un peu embetant, rien ne s'affiche dans la troisieme liste, le code etant pourtant le meme . Quelqu'un aurait donc une methode générique pour ce genr d'application? mon code :
 
index  

Citation :

<form>
   <fieldset style="width:500px;">
    <legend>Liste Liée</legend>
    <label>Auteurs</label>
    <select name='auteur' id='auteur' onChange="javascript:go();">
     <option value='-1'>Aucun</option>
     
     <?php  
      mysql_connect("localhost","root","root" );
      mysql_select_db("livre" );
      $res=mysql_query("SELECT * FROM auteur ORDER BY nom" );
      while($row=mysql_fetch_assoc($res)){
       echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
      }
     ?>
    </select>
     
    <label>Livres</label>
    <div id='livre' style='display:inline'>
     
     <select name='livre'>
      <option value='-1'>Choisir un livre</option>
     </select>
    </div>
     
    <label>Pages</label>
    <div id='page' style='display:inline'>
     <select name='page'>
       
     </select>
    </div>
   </fieldset>
   
  </form>


js

Citation :


function go(){
 var xhr=getXhr();
 
 xhr.onreadystatechange=function(){
  if(xhr.readyState == 4 && xhr.status==200){
   leselect=xhr.responseText;
   document.getElementById('livre').innerHTML=leselect;
  }
 }
 xhr.open("POST","ajaxLivre.php",true);
 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
 sel=document.getElementById('auteur');
 idauteur=sel.options[sel.selectedIndex].value;
 xhr.send("idAuteur="+idauteur);
}  
 
function go2(){
   
 var xhr=getXhr();
 
 xhr.onreadystatechange=function(){
  if(xhr.readyState == 4 && xhr.status==200){
   leselect=xhr.responseText;
   document.getElementById('page').innerHTML=leselect;
  }
 }
 xhr.open("POST","ajaxLivre2.php",true);
 
 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
 sel=document.getElementById('livre');
 
 _idLivre=sel.options[sel.selectedIndex].value;
 
 xhr.send("_idLivre="+_idLivre);
}  


 
ajaxLivre

Citation :


<?php
 
 
 echo "<select name='livre' id='livre' onChange='javascript:go2();'>";
 
 
 if(isset($_POST['idAuteur'])){
  mysql_connect("localhost","root","root" );
  mysql_select_db("livre" );
  $res=mysql_query("SELECT idLivre,titre FROM livre WHERE idAuteur='".$_POST['idAuteur']."' ORDER BY titre" );
       
  while($row=mysql_fetch_array($res)){
   echo "<label>".$row["idLivre"]."</label>";
   
   
   echo "<option value='".$row["idLivre"]."'>".$row["titre"]."</option>";
  }
 }
 
 echo "</select>";
 
?>
 


 
ajaxLivre2
 

Citation :


 
<?php
 echo "cool";
 
 echo "<select name='page'>";
 
 if(isset($_POST['_idLivre'])){
  mysql_connect("localhost","root","root" );
  mysql_select_db("livre" );
  echo "cool";
  $res=mysql_query("SELECT idPage,nombre FROM page WHERE _idLivre='".$_POST['_idLivre']."'" );
       
  while($row=mysql_fetch_assoc($res)){
   echo "<option value='".$row["idPage"]."'>".$row["nombre"]."</option>";
  }
 }
 
 echo "</select>";
?>
 


 
 
Help please

Reply

Marsh Posté le 18-05-2009 à 16:08:56   

Reply

Marsh Posté le 18-05-2009 à 16:28:38    

attention
tu as un select et un div avec un id "div", et pareil pour "page",
je pense que c'est le faite que une fois que tu as excute go(), tu as deux id "livre" (le select et le div), donc a l'appel javascript getelementByid(livre) ca bug.
 
Utilise firefox et la console d'erreur pour les bugs JS (outils/consol d'erreurs ), c'est tres pratique pour trouver ton bug


Message édité par infoman64 le 18-05-2009 à 16:29:24
Reply

Marsh Posté le 18-05-2009 à 16:54:39    

Merci beaucoup pour ta réponse cependant je viens de tester avec des noms différents et toujours le meme probleme....

Reply

Marsh Posté le 18-05-2009 à 16:59:54    

Au temps pour moi, tu avais raison, j'ai completement ré assigné mes noms d'id et ça marche. Merci encor!!!!

Reply

Sujets relatifs:

Leave a Replay

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