Bonjour,

Je viens de suivre le tuto de Xavier ZOLEZZI
Ce qui fonctionne parfaitement.
Ensuite, j'ai voulu continuer avec cette tentative de le réécrire en PHP/MySQL classique pour me "faire la main".
En vain. Si quelqu'un veut bien regarder ceci:
La page d'index =
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head >
		<title>AutoCompletion</title>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
		<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.ui/1.8.10/jquery-ui.js"></script>
		<script type="text/javascript">
			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: 600
				});
			});
		</script>
		<!--<link rel="Stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" />-->
	</head>
	<body>
		<form action="#">
			CP :<input type="text" id="cp" size="6"/>
			Ville : <input type="text" id="ville" />
		</form>
	</body>
</html>
Et AutoCompletion.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
36
<?php
require_once('./AutoCompletionCPVille.class.php');
    $hote  = 'localhost';  // Adresse du serveur 
    $login = 'root';       // Login 
    $pass  = '';           // Mot de passe 
    $base  = 'atelier';       // Base de données à utiliser 
    // On se connecte à la base de données 
    mysql_connect($hote, $login, $pass)or die("erreur de connexion au serveur");
    // On selectionne la base de données souhaitée 
    mysql_select_db($base)or die("erreur de connexion a la base de donnees");
//Initialisation de la liste
$list = array();
//Construction de la requete
$strQuery = "SELECT CP AS CodePostal, VILLE AS Ville FROM cp_autocomplete WHERE ";
if (isset($_POST["codePostal"])){
    $strQuery .= "CP LIKE '".mysql_real_escape_string($_POST['codePostal'])."%' ";
}
else {
    $strQuery .= "VILLE LIKE '".mysql_real_escape_string($_POST['ville'])."%'  ";
}
$strQuery .= "AND CODEPAYS = 'FR' ";
//Limite
if (isset($_POST["maxRows"])){
    $strQuery .= "LIMIT 0,".mysql_real_escape_string($_POST['maxRows'])."";
}
$query = mysql_query($strQuery);
$i=0 ;
while ($enr = mysql_fetch_array($req)) {
       //$list[] = json_decode(json_encode($enr), FALSE);
         $list[] = array(
                'CodePostal' => $enr['CodePostal'],
                'Commune' => "".utf8_encode($enr['Commune']).""
        );
}
echo json_encode($list);
?>
Merci à celui qui a la patience de lire tout ça.

Cordialement.