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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci de votre aide, éclairez moi un peu s'il vous plait
Partager