bonjour
j'ai utilisé le tuto
http://x-zolezzi.developpez.com/tuto...utocompletion/
tous fonctionne mais quand j'entre par exemple 2260 il commence a afficher:
22600, null
22600, null
22600, Saint-Caradec
22600, null
22600, null
etc...
en entrant : 750
deja il trouvent pas 75000 paris
c'est directement:
75001, paris 01 bourse
75002, paris 02 louvre
75003, paris 03 temple
75004, null
75005, null
etc..
comment empêcher d'afficher les null, j'ai regarder sur table et il n' y a aucune case null 75004 c'est bien Paris 04 Hôtel-de-Ville, la il m'affiche null.
quelqu'un peut m'aider ?
je crois que ça vient du fichier AutoCompletion.php
Code php : 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 <?php require_once('./AutoCompletionCPVille.class.php'); //Initialisation de la liste $list = array(); //Connexion MySQL // Fichier de configuration include "./../../config.php"; // Connection MYSQL try{ // On se connecte à MySQL $bdd = new PDO('mysql:host='.$sql.';dbname='.$base, $user, $password); } catch(Exception $e){ // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } unset($sql); unset($user); unset($password); unset($base); //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 = $bdd->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); ?>
et le javsc
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 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: 100 }); });
Partager