Fonctionnalité Autocomplétion tutoriel Xavier Zolezzi
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:
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:
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.