Autocomplétion : supprimer résultat null
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:
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:
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
});
}); |