====== PHP_Jquery_AJAX_Autocomplete ======
* Objet : Remplir un menu déroulant avec le data d'une base de données
* Niveau requis : {{tag>avisé}}
* Commentaires : //Contexte d'utilisation du sujet du tuto. // FIXME
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
===== Code =====
=== Jquery fonction $.ajax ===
// file name : formulairePersonne.php
=== Requetage php servi à ajax ===
getNomsDepartements($_GET['filtreDepartement'].'%');
echo json_encode($data);
}
if($_GET['type'] == 'villes'){
$data = $managerAutocomplete->getVillesFranceParDpt($_GET['filtreVille'].'%', $_GET['filtreDepartement'].'%');
echo json_encode($data);
}
if($_GET['type'] == 'codePostal'){
$data = $managerAutocomplete->getCodePostalParVille($_GET['filtreCp'].'%', $_GET['filtreV'].'%');
echo json_encode($data);
}
// file name : ManagerAutocomplete.class.php
requete = new RequetesMembre();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////// Gestion affichage des pages ///////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
public function getNomsDepartements($filtreDpt)
{
$data = $this->requete->getNomsDepartements($filtreDpt);
return $data;
}
public function getVillesFranceParDpt($filtreVille, $filtreDpt)
{
$data = $this->requete->getVillesFranceParDpt($filtreVille, $filtreDpt);
return $data;
}
public function getCodePostalParVille($filtreCodePostal, $filtreVille)
{
$data = $this->requete->getCodePostalParVille($filtreCodePostal, $filtreVille);
return $data;
}
public function estUnePersonne($idMembre)
{
$bool = $this->requete->estUnePersonne($idMembre);
return $bool;
}
}
=== Requetes ===
// RequetesMembre.class.php
pdo = Database :: connect();
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
public function estUnePersonne($idMembre)
{
$sql="select personne.personne_id from personne";
$sql.=" join membre on personne.idMembre=membre.membre_id where membre.membre_id=$idMembre;";
$q = $this->pdo->query($sql)->fetchColumn();
return (bool)$q;
}
public function getNomsDepartements($filtreDpt)
{
$result = $this->pdo->prepare("SELECT nom FROM Departements WHERE nom LIKE :paramDepartement");
$result->execute(array(':paramDepartement' => $filtreDpt));
$data = array();
foreach($result as $row)
{
array_push($data, $row['nom']);
}
return $data;
}
public function getVillesFranceParDpt($filtreVille, $filtreDpt)
{
$result = $this->pdo->prepare("SELECT Villes_france.ville_nom_reel FROM Villes_france INNER JOIN Departements ON Villes_france.departement_code=Departements.num_departement WHERE Villes_france.ville_nom_simple LIKE :paramVille AND Departements.nom LIKE :paramDepartement");
$result->execute(array(':paramVille' => $filtreVille, ':paramDepartement' => $filtreDpt));
$data = array();
foreach($result as $row)
{
array_push($data, $row['ville_nom_reel']);
}
return $data;
}
public function getCodePostalParVille($filtreCodePostal, $filtreVille)
{
$result = $this->pdo->prepare("select ville_code_postal from Villes_france where ville_nom_reel LIKE :paramVille AND ville_code_postal LIKE :paramCp");
$result->execute(array(':paramCp' => $filtreCodePostal, ':paramVille' => $filtreVille));
$data = array();
foreach($result as $row)
{
array_push($data, $row['ville_code_postal']);
}
return $data;
}
}