Bonjour,

j'ai trouvé exactement ce que je recherche à travers l'excellent tutoriel de Xavier Zolezzi : AutoComplétion Code Postal/Ville avec jQuery

Cependant, malgré le script fourni, il ne marche pas.


J'ai réalisés les étapes demandées.

J'ai bien créé la table "cp_autocomplete" avec les champs + importation du fichier sql (ok) comme demandé :

CODEPAYS char(2)
CP varchar varchar(10)
VILLE varchar(180)

Le fichier index.html propose les inputs suivants :
id="cp"
id ="ville"

En suivant les instructions, j'ai modifié les données de connexion à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
//Connexion MySQL
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
1er problème : il semble que je n'arrive pas à me connecter car il ne se passe rien. Pour tester la connexion, j'ai volontairement rentré le nom d'une base inexistante (test1) mais je n'ai aucun message d'erreur ???


Mon deuxième problème : je ne suis pas un expert en requête SQL (entre autre) mais elle me semble comporter des erreurs


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
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

<?php
require_once('./AutoCompletionCPVille.class.php');

//Initialisation de la liste
$list = array();



//Connexion MySQL
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}



//Construction de la requete 
$strQuery = "SELECT CP CodePostal, VILLE Ville FROM autocomplete WHERE ";      // 1. correction de autocomplete => cp_autocomplete (je crois) --   2. D'ou vient CodePostal ???????

if (isset($_POST["codePostal"]))
{
    $strQuery .= "CP LIKE :codePostal ";       // faut-il modifier tous les champs ???
}
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);
?>

les 3 fichiers sont :
- indes.html
- AutoCompletion.php
- AutoCompletionCPVille.class.php

Ces 3 fichiers sont dans le dossier www de WAMP.

Merci pour votre aide.