Liaison entre deux liste déroulante pays et ville en jQuery, Ajax et PHP

L’ajout des listes dépendant sera une fonctionnalité très utile lorsqu’il existe une dépendance entre les options. Par exemple, si nous devons lister les publications en fonction de leur catégorie, nous pouvons avoir des listes déroulantes de catégories de publications dépendantes.
 
 
Dans ce tutoriel, nous allons créer des listes dépendant du pays. Lors de la modification des valeurs de la liste déroulante des pays, les options de la liste déroulante des villes sont chargées de manière dynamique. Nous allons utilisé AJAX jQuery pour obtenir les options dépendantes du menu déroulant des villes en fonction du pays sélectionné.
 

Code HTML :
<div>
	<div>
		<label>Pays:</label><br/>
		<select name="pays" id="liste-pays" onChange="getVille(this.value);">
		<option value="">Sélectionnez le pays</option>
		<?php
		foreach($results as $pays) {
		?>
		<option value="<?php echo $pays["id"]; ?>"><?php echo $pays["name"]; ?></option>
		<?php
		}
		?>
		</select>
	</div>
	<div>
		<label>Ville:</label><br/>
		<select name="ville" id="list-ville">
		<option value="">Sélectionnez la ville</option>
		</select>
	</div>
</div>

 
 

Récupérer les villes en utilisant AJAX et jQuery :

Le script jQuery suivant montre une fonction permettant d’envoyer une requête AJAX à PHP afin que la liste de villes lue dépend du pays sélectionné. Cet appel AJAX est défini avec l’ID de pays sélectionné.

function getVille(val) {
	$.ajax({
	type: "POST",
	url: "get_ville.php",
	data:'id_pays='+val,
	success: function(data){
		$("#list-ville").html(data);
	}
	});
}

 

Lire la base de données de villes avec PHP :

En PHP, on se connecte avec la base de données pour récupérer les valeurs de la table « villes » en fonction de l’ID de pays transmis par l’appel AJAX. Il forme des options de liste déroulante de ville et renvoie la réponse AJAX. Cette réponse est insérée dans la liste déroulante des villes.

<?php
require_once("database.php");
$db = new DB();
if(!empty($_POST["id_pays"])) {
	$query ="SELECT * FROM villes WHERE id_pays = '" . $_POST["id_pays"] . "'";
	$results = $db->runQuery($query);
?>
	<option value="">Sélectionnez la ville</option>
<?php
	foreach($results as $ville) {
?>
	<option value="<?php echo $ville["id"]; ?>"><?php echo $ville["name"]; ?></option>
<?php
	}
}
?>
Télécharger le code source en cliquant sur ce lien
QCM jQuery

2 réflexions sur “Liaison entre deux liste déroulante pays et ville en jQuery, Ajax et PHP

  • décembre 15, 2020 à 12:52 pm
    Permalien

    Verifiez votre code source, c’est vraiment fait n’importe comment !!!
    des erreurs dans la bdd pour les injections des erreurs dans index.php pour les requetes.

    Répondre
  • septembre 17, 2022 à 12:33 am
    Permalien

    je suis apparemment intéressé à votre différentes formations

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *