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 à :
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 ???
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()); }
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.
Partager