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
	});
});