8791 sujets

Développement web côté serveur, CMS

Premiers pas avec xmlhttprequest. Aie..

Je souhaite guider l'utilisateur à la saisie d'un champ en lui proposant une liste de mots commençant par les lettres qu'il a déjà tapées, tirés d'une base sql.

index.html :

a écrit :

<head>
...
<script type="text/javascript" src="testajax.js"></script>
</head>
<body onload='process()'>
Kinnigoù :
<input type="text" id="myName" />
<div id="MyDivElement" />
</body>
</html>


testajaks.js

a écrit :

...
function process()
{
// Continuer uniquement si l'objet xmlHttp est valide.
if (xmlHttp)
{
try
{
xmlHttp.open("GET", "testajax.php", true);
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(null);
}
catch (e)
{
alert("Connexion au serveur impossible :\n" + e.toString());
}
}
}

function handleRequestStateChange()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200 || xmlHttp.status == 304)
{
try
{
handleServerResponse();
}
catch(e)
{
alert("Erreur de lecture de la réponse : " + e.toString());
}
}
else
{
alert("Problème d'obtention des données :\n" + xmlHttp.statusText);
}
}
}

function handleServerResponse()
{
var xmlResponse = xmlHttp.responseXML;
xmlRoot = xmlResponse.documentElement;
kinnigArray = xmlRoot.getElementsByTagName("kinnig");
var html = "";
for (var i=0; i<kinnigArray.length; i++)
html += kinnigArray.item(i).firstChild.data + "<br/>";
myDiv = document.getElementById("myDivElement");
myDiv.innerHTML = "<p>Le serveur a répondu : </p>" + html;
}


et enfin testajaks.php :

a écrit :


<?php
header('Content-Type: text/xml');

include ('connect.inc.php');

$dom = new DOMDocument();
$respont = $dom->createElement('respont');
$dom->appendChild($respont);

$name = $_GET['name'];
$kinnigou = mysql_query("SELECT poz FROM ajaks WHERE poz LIKE '".$name."%"."' LIMIT 15");
while ($linenn = mysql_fetch-array($kinnigou))
{
$kinnig = $dom->createElement('kinnig');
$kinnigText = $dom->createTextNode("$linenn Smiley poz ");
$kinnig->appendChild($kinnigText);
$respont->appendChild($kinnig);
}

$xmlString = $dom->saveXML();
echo $xmlString;

mysql_close();
?>


Or dès le lancement de la page index.html j'ai une erreur : "Problème d'obtention des données".
D'après le code javascript, cela signifierait que le readystate de l'objet xmlhttprequest est bien à 4 mais que son status n'est jamais à 200.

Je travaille en local (linux & firefox)

Merci de votre aide et bonne journée à tout le monde !

Kristen
Modifié par kristen (02 Feb 2011 - 06:22)
Bon, j'ai trouvé. 'Faut être c... bête quand même : une simple faute de frappe dans le fichier php, là, sous mes..., pardon, sous nos yeux :

a écrit :

while ($linenn = mysql_fetch-array($kinnigou))


Un simple '-' au lieu d'un '_'...

Bon, j'ai bien un autre problème, mais d'une autre nature, donc je considère celui-ci comme résolu ! Et si vraiment je galère je créerai un nouveau fil.

Bonne journée à tous & toutes
Modifié par kristen (02 Feb 2011 - 06:25)