ok, j'ai donc testé le code avec firebug et j'ai une erreur
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost/Nouvelle%20maquette/maquette.php :: ajax :: line 237" data: no]
et lorsque je vais à la ligne 237 j'ai issue de ma fonction ajax qui va chercher des données dans le fichier Examen.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| function ajax()
{
var xhr=null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//on définit l'appel de la fonction au retour serveur
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200)
{
//alert(xhr.responseText)
ajaxExamens(xhr);
}
};
//on appelle le fichier php adéquat
xhr.open("GET", "Examens.php", true);
xhr.send(null);
} |
je ne comprend pas pourquoi firebug me dit qu'il y'a pas de données alors que je reçois bien mes informations dans la fonction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| function ajaxExamens(xhr)
{
var docXML= xhr.responseXML;
var items = docXML.getElementsByTagName("id")//balise id du xml(id des examens)
//on fait juste une boucle sur chaque element "id" de chaque examen
for (i=0;i<items.length;i++)
{
// création des nouveaux noeuds
var nouveauLi = document.createElement('li');
var nouveauDiv = document.createElement('div');
//var nouveauLabel = document.createTextNode(items.item(i).firstChild.data);
var nouveauLabel = document.createTextNode("Examen"+(i+1));
nouveauLi.label=items.item(i).firstChild.data;// id examen
// lui donne un attribut class appelé cliquable défini dans le css
nouveauDiv.className="cliquable";
//sur clic des div créés appel de la fonction de création des séries
nouveauLi.onclick = function(){ajax1(this.label)};//ie et ff
// raccord des noeuds
nouveauDiv.appendChild(nouveauLabel);
nouveauLi.appendChild(nouveauDiv);
var insertAvantMoi=document.getElementById('series');
var parentUl=insertAvantMoi.parentNode;
parentUl.insertBefore(nouveauLi, insertAvantMoi);
}
} |
et voici le php(Examen.php)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <?php
include_once 'database.php';
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\"?>\n";
echo "<examen>\n";
// connect to MySQL
$database = "test";
$user = "root";
$password = "titi";
$dbcon = new MyDatabase($hostname, $database, $user, $password);
$rows = array();// tableau de tableau
$rows=$dbcon->getStudies();// methode qui me renvoie un tableau de tableau de valeur
//On boucle sur le resultat
foreach ($rows as $i)
{
echo "<id>" . $i[0] . "</id>\n";
echo "<date>" . $i[3] . "</date>\n";
echo "<heure>" . $i[4] . "</heure>\n";
echo "<description>" . $i[8] . "</description>\n";
//echo "<description>" . $pi . "</description>\n";
}
echo "</examen>\n";
?> |
Partager