[AJAX] Affichage Resultat Requete
Bonjour,
je souhaite réaliser en Ajax un script qui permet de rechercher un nom de client en la tapant dans une textbox ...
Je veux qu'à chaque lettre tapé la liste s'actualise pour affiner la recherche.
Voici donc ce que j'ai fait :
Code Javascript (inclus a la page ou je suis sensé afficher les résultats)
Code:
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| <script type="text/javascript">
function getRequeteHttp()
{
var requeteHttp;
if (windows.XMLHttpRequest)
{ //Mozilla
requeteHttp=new XMLHttpRequest();
if (requeteHttp.overrideMimeType)
{ //problème firefox
requeteHttp.overrideMimeType('text/xml');
}
}
else
{
if (window.ActiveXObject)
{ //C'est Internet explorer < IE7
try
{
requeteHttp=new ActiveXObject ("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
requeteHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
requeteHttp=null;
}
}
}
}
return requeteHttp;
}
function envoyerRequete(url, debut)
{
var requeteHttp=getRequeteHttp();
if (requeteHttp==null)
{
alert("Impossible d'utiliser Ajax sur ce navigateur");
}
else
{
requeteHttp.open('POST','url',true);
requeteHttp.onreadystatechange=function(){recevoirReponse (requeteHttp);};
requeteHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
requeteHttp.send('debutLib=' + debut);
}
return;
}
function recevoirReponse(requeteHttp)
{
if(requeteHttp.readyState==4)
{
if (requeteHttp.status==200)
{
traiterReponse(requeteHttp.responseText);
}
else
{
alert("La requête ne s'est pas correctement exécutée");
}
}
}
function traiterReponse(reponse)
{
var i,nb,selectClt;
var clients=reponse.split('/');
nb=clients.length;
selectClt=document.getElementById("listeClients");
selectClt.length=nb;
for (i=0; i<nb; i++)
{
selectClt.option[i].text=clients[i];
}
}
</script> |
Code liste_clients.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php
include "includes/head.php";
$cnx = mysql_connect("localhost", "root", "");
mysql_select_db("videotheque",$cnx);
mysql_query("SET NAMES UTF8");
if(!isset($_SESSION['login']))
{
echo '<p>Vous devez vous identifier pour accéder à cette partie du site.<p>';
}
else
{
echo '<h1>Liste de tous les Clients</h1><p><label>Recherche d\'un client : </label><input type="text" onkeyup="javascript:envoyerRequete(\'getClient.php\',this.value)"><br />';
echo '<select id="listeClients" size="6">
</select></p>';
}
?>
<?php
include "includes/foot.php";
?> |
Code getClient.php
Code:
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
| <?php
header("Cache-Control: no-cache,must-revalidate");
header('Content-Type: text/plain; charset=ISO-8859-1');
$cnx = mysql_connect("localhost", "root", "");
mysql_select_db("videotheque",$cnx);
mysql_query("SET NAMES UTF8");
$req=mysql_query("select * from clients where nom like '".$_POST['debutLib']."%'");
$res=mysql_fetch_assoc($req);
if ($res)
{
$resultat=$res['nom'];
$res=mysql_fetch_assoc($req);
}
else
{
$resultat='';
}
while($res)
{
$resultat=$resultat.'/'.$res['nom'];
$res=mysql_fetch_assoc($req);
}
mysql_close($cnx);
echo $resultat;
?> |
ça fait plusieurs heures que je cherche pourquoi mon code ne fonctionne pas mais je ne trouve pas d'erreurs :cry:
Merci de votre aide, éclairez moi un peu s'il vous plait