Requete Ajax pour récuperer une liste de villes
Salut a tous,
Je me casse la tête depuis un moment pour faire un champ a autocomplétion (c'était censé être simple...:aie:)
Coté Javascript :
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
| $(function ()
{
$("#city").autocomplete({
source: function (request, response)
{
var objData = {};
if ($(this.element).attr('id') == 'city')
{
objData =
{
city: request.term
};
$.ajax({
url: "../php/autocomplete.php",
dataType: "json",
data: objData,
type: 'POST',
success: function(data)
{
response($.map(data, function(item)
{
return
{
label: item.city,
value: function()
{
$('#city').val(item.city);
return item.city;
}
}
}
));
}
})
}
},
minLength: 3
});
}); |
Coté PHP : (autocomplete.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
| <?php
require_once('../includes/bdd_connect.php');
try
{
$db = getDB();
$bdd_success = fopen('bdd_success.txt', 'r+');
$date = date(DATE_RFC2822);
fputs($bdd_success, 'success, '.$date);
}
catch (PDOException $e)
{
exit('problème de connexion à la base');
}
include('country_code.php');
if (empty($country_code))
{
}
else
{
echo $country_code;
}
$requete = "SELECT city_name city FROM webgeocities WHERE city_name LIKE :city_name AND country_code =:country_code LIMIT 10";
$req_ville = $db->prepare($requete);
$value = $_POST['city'].'%';
$req_ville->execute(array("country_code"=> $country_code,"city_name" => $_POST['city'].'%'));
$list = $req_ville->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($list);
?> |
(country_code.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
| <?php
require_once('../includes/bdd_connect.php');
try
{
$db = getDB();
$bdd_success = fopen('../bdd_success.txt', 'r+');
$date = date(DATE_RFC2822);
fputs($bdd_success, 'success, '.$date);
}
catch (PDOException $e)
{
exit('problème de connexion à la base');
}
$req_pays = $db->prepare('SELECT country_code FROM country WHERE country_name =:country');
$req_pays->execute(array("country" => $_POST['country']));
$results = $req_pays->fetch(PDO::FETCH_OBJ);
$country_code = $results->country_code;
echo $country_code;
?> |
En gros j'essaie de récuperer le pays sélectionné (liste déroulante) puis effectuer la requete PHP via Ajax pour afficher des suggestions de villes mais quand je met en place tout ça, rien ne se passe... Rien du tout !
Si quelqu'un pouvait m'aider a comprendre mon erreur... Merci d'avance ! :)