Salut a tous,

Je me casse la tête depuis un moment pour faire un champ a autocomplétion (c'était censé être simple...)

Coté Javascript :
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
$(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 : 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
<?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 : 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
<?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 !