Bonjour,
Après plusieurs jours de batailles pour réussir à faire fonctionner ce script, malheureusement je n'y arrive pas .Donc je tourne vers vous dans l'espoir de le faire fonctionner.Ou si vous avez un script complet analogue à me soumettre qui fonctionne.
Le script autoC.php ( voir ci dessous ) ne me retourne aucun résultat, il me retourne [] , et aucune erreur de syntaxe ni de codage.
La connexion à la bdd semble correcte.
Je ne vois pas où se situe le souci.
Si vous pouvez m'aider ça serait top.
Merci par avance.
(Ce script a été pris des tutos de ce site)
Les scripts sont les suivants:
Script : AutoC.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
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 <?php require_once('./AutoCompletionCPVille.class.php'); //Initialisation de la liste $list = array(); //Connexion MySQL try { $db = new PDO('mysql:host=XXXXX;dbname=YYYYY, "YYYYYY", "ZZZZZZ"'); } catch (Exception $ex) { echo $ex->getMessage(); } //Construction de la requete $strQuery = "SELECT CP CodePostal, VILLE Ville FROM autocomplete WHERE "; if (isset($_POST["codePostal"])) { $strQuery .= "CP LIKE :codePostal "; } else { $strQuery .= "VILLE LIKE :ville "; } $strQuery .= "AND CODEPAYS = 'FR' "; //Limite if (isset($_POST["maxRows"])) { $strQuery .= "LIMIT 0, :maxRows"; } $query = $db->prepare($strQuery); if (isset($_POST["codePostal"])) { $value = $_POST["codePostal"]."%"; $query->bindParam(":codePostal", $value, PDO::PARAM_STR); } else { $value = $_POST["ville"]."%"; $query->bindParam(":ville", $value, PDO::PARAM_STR); } //Limite if (isset($_POST["maxRows"])) { $valueRows = intval($_POST["maxRows"]); $query->bindParam(":maxRows", $valueRows, PDO::PARAM_INT); } $query->execute(); $list = $query->fetchAll(PDO::FETCH_CLASS, "AutoCompletionCPVille");; echo json_encode($list); ?>
Script :AutoCompletionCPVille.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php class AutoCompletionCPVille { public $CodePostal; public $Ville; } ?>
Le code html
Code html : 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 <html xmlns="http://www.w3.org/1999/xhtml"> <head > <title>AutoCompletion</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script> <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.ui/1.8.10/jquery-ui.js"></script> <script type="text/javascript"> var cache = {}; $(function () { $("#cp, #ville").autocomplete({ source: function (request, response) { //Si la réponse est dans le cache if (('FR' + '-' + request.term) in cache) { response($.map(cache['FR' + '-' + request.term], function (item) { return { label: item.CodePostal + ", " + item.Ville, value: function () { if ($(this).attr('id') == 'cp') { $('#ville').val(item.Ville); return item.CodePostal; } else { $('#cp').val(item.CodePostal); return item.Ville; } } } })); } //Sinon -> Requete Ajax else { var objData = {}; if ($(this.element).attr('id') == 'cp') { objData = { codePostal: request.term, pays: 'FR', maxRows: 10 }; } else { objData = { ville: request.term, pays: 'FR', maxRows: 10 }; } $.ajax({ url: "./AutoCompletion.php", dataType: "json", data: objData, type: 'POST', success: function (data) { //Ajout de reponse dans le cache cache[('FR' + '-' + request.term)] = data; response($.map(data, function (item) { return { label: item.CodePostal + ", " + item.Ville, value: function () { if ($(this).attr('id') == 'cp') { $('#ville').val(item.Ville); return item.CodePostal; } else { $('#cp').val(item.CodePostal); return item.Ville; } } } })); } }); } }, minLength: 3, delay: 600 }); }); </script> <!--<link rel="Stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" />--> </head> <body> <form action="#"> CP :<input type="text" id="cp" size="6"/> Ville : <input type="text" id="ville" /> </form> </body> </html>
Partager