Bonjour,
Après plusieurs jours de batailles pour réussir à faire fonctionner ce script, malheureusement je n'y arrive pas .Donc je tourne vers vous dans l'espoir de le faire fonctionner.Ou si vous avez un script complet analogue à me soumettre qui fonctionne.
Le script autoC.php ( voir ci dessous ) ne me retourne aucun résultat, il me retourne [] , et aucune erreur de syntaxe ni de codage.
La connexion à la bdd semble correcte.
Je ne vois pas où se situe le souci.
Si vous pouvez m'aider ça serait top.
Merci par avance.
(Ce script a été pris des tutos de ce site)

Les scripts sont les suivants:

Script : AutoC.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
 
require_once('./AutoCompletionCPVille.class.php');
 
//Initialisation de la liste
$list = array();
 
//Connexion MySQL
try
{
    $db = new PDO('mysql:host=XXXXX;dbname=YYYYY, "YYYYYY", "ZZZZZZ"');
}
catch (Exception $ex)
{
    echo $ex->getMessage();
}
 
//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 = $db->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);
?>


Script :AutoCompletionCPVille.class.php


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?php
class AutoCompletionCPVille {
	public $CodePostal;
	public $Ville;
}
?>

Le code html

Code html : 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
<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>