Bonjour,
je dispose de fonction en ajax me permettant de récupérer des adresses dans la table d'une base de données. Ces adresses s'affichent dans une div. Plus on renseigne le champ texte et plus la recherche s'affine. Il est possible de cliquer sur les adresses apparues dans la div afin de les sélectionner. Lorsqu'elle est sélectionnée, l'adresse se place dans le champ texte.
Mon problème vient du fait que lorsque je récupère une adresse disposant d'un , l'adresse devient insélectionnable .
Voici mon code
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 <HTML> <HEAD> <link href="style.css" rel="stylesheet" type="text/css"> <script> var req; function Initialize() //creation dun objet XMLHttpRequest { try { req=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try{ req=new ActiveXObject("Microsoft.XMLHTTP"); }catch(oc){ req=null; } } if(!req&&typeof XMLHttpRequest!="undefined"){ req= new XMLHttpRequest(); } } function SendQuery(key) //appel de la page serveur avec parametre { Initialize(); varurl="rues.php?param="+key; if(req!=null){ req.onreadystatechange = Process; req.open("GET", varurl, true); req.send(null); } } function Process() //Affiche ou masque le calque de resultat. { if (req.readyState == 4){ if (req.status == 200){ if(req.responseText==""){ HideDiv("autocomplete"); } else { ShowDiv("autocomplete"); document.getElementById("autocomplete").innerHTML =req.responseText; } } else { document.getElementById("autocomplete").innerHTML= "Erreur lors de la récupération des données :<br>"+req.statusText; } } } function ShowDiv(divid) //Affiche le calque { if (document.layers)document.layers[divid].visibility="show"; else document.getElementById(divid).style.visibility="visible"; } function HideDiv(divid) //masque le calque { if (document.layers) document.layers[divid].visibility="hide"; else document.getElementById(divid).style.visibility="hidden"; } function BodyLoad() // au demurrage on masque le div { HideDiv("autocomplete"); } </script> </HEAD>
Voici le code qui récupère les adresses dans la div
et voici le message d'erreur que je récupère
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 if($param=="") //il n'y a pas de parametre alors on quitte. exit(); $sql = "select nom from NomRues where nom like '%$param%' ORDER BY nom ASC"; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { //on affiche chaque resultat en lien hypertext. ?> <a href="#" onClick="javascript:document.form.adresse.value='<?=$row['nom']?>';document.getElementById('autocomplete').style.visibility='hidden';"> <?= $row['nom'];?></a> <br> <? } mysql_close($link);
[/code]
Erreur : missing ; before statement
Fichier source : http://serveurprod/applis/ddc/index....+Paris&cache=1
Ligne : 1, Colonne : 49
Code source :
javascript:document.form.adr.value='12 Rue de l' Ancienne Mairie';document.getElementById('autocomplete2').style.visibility='hidden';document.getElementById('autocomplete').style.visibility='hidden'
[/code]
Je n'ai toujours pas réussi à trouver d'où pouvait venir cette erreur, Si vous avez une idée je vous serai gré de m'en faire part.
Cordialement.
Partager