bonjour et merci de m\'avoir repondre
j\'ai fait ce code d\'aprés ce lien http://siddh.developpez.com/articles/ajax/#LIV-A
de deux liste
il ne marche pas:
CREATE TABLE `auteur` ( `id` tinyint(4) NOT NULL auto_increment, `nom` varchar(50) NOT NULL, PRIMARY KEY (`id`) ); insert into `auteur` values (1,\'Clive Cussler\'), (2,\'Harlan Coben\'), (3,\'Franck Herbert\'), (4,\'Pierre Bordages\'); CREATE TABLE `livre` ( `id` tinyint(4) NOT NULL auto_increment, `titre` varchar(50) NOT NULL, `idAuteur` tinyint(4) default NULL, PRIMARY KEY (`id`) ); insert into `livre` values (1,\'Odyssee\',1), (2,\'Sahara\',1), (3,\'Dragon\',1), (4,\'Une chance de trop\',2), (5,\'Ne le dis a personne\',2), (6,\'Disparu à jamais\',2), (7,\'Dune\',3), (8,\'La barriere de santaroga\',3), (9,\'Les guerriers du silence\',4), (10,\'La citadelle hyponeros\',4), (11,\'Terra mater\',4);
le fichier auteur.php
<html> <head> <title>Tutoriel Ajax (XHTML + JavaScript + XML)</title> <script type=\'text/javascript\'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject(\"Msxml2.XMLHTTP\"); } catch (e) { xhr = new ActiveXObject(\"Microsoft.XMLHTTP\"); } } else { // XMLHttpRequest non supporté par le navigateur alert(\"Votre navigateur ne supporte pas les objets XMLHTTPRequest...\"); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go(){ var xhr = getXhr(); // On défini ce qu\'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById(\'livre\').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open(\"POST\",\"ajaxLivre.php\",true); // ne pas oublier ça pour le post xhr.setRequestHeader(\'Content-Type\',\'application/x-www-form-urlencoded\'); // ne pas oublier de poster les arguments // ici, l\'id de l\'auteur sel = document.getElementById(\'auteur\'); idauteur = sel.options[sel.selectedIndex].value; xhr.send(\"idAuteur=\"+idauteur); } </script> </head> <body> <form> <fieldset style=\"width: 500px\"> <legend>Liste liées</legend> <label>Auteurs</label> <select name=\'auteur\' id=\'auteur\' onchange=\'go()\'> <option value=\'-1\'>Aucun</option> <? mysql_connect(\"localhost\",\"root\",\"root\"); mysql_select_db(\"test\"); $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 auteur</option> </select> </div> </fieldset> </form> </body> </html>
le fichier Ajaxlivre
<?php echo \"<select name=\'livre\'>\"; if(isset($_POST[\"idAuteur\"])){ mysql_connect(\"localhost\",\"root\",\"root\"); mysql_select_db(\"test\"); $res = mysql_query(\"SELECT id,titre FROM livre WHERE idAuteur=\".$_POST[\"idAuteur\"].\" ORDER BY titre\"); while($row = mysql_fetch_assoc($res)){ echo \"<option value=\'\".$row[\"id\"].\"\'>\".$row[\"titre\"].\"</option>\"; } } echo \"</select>\"; ?>
ou est le probleme ici