Probleme ajax listes liées - HTML/CSS - Programmation
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
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....
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!!!!
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
<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
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
<?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
<?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