====== 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
"> Informations complémentaires :


* Champs obligatoires




*


*


*


*


*


*

value="F">

value="M"> >

*



location.reload();' ?> />
=== 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; } }