Les listes déroulantes sont des éléments essentiels dans de nombreuses applications web, permettant aux utilisateurs de sélectionner une option parmi plusieurs. Dans cet article, nous allons explorer comment créer une liste déroulante dynamique en utilisant PHP et MySQL. Nous allons tirer parti de la puissance des bases de données pour peupler dynamiquement notre liste déroulante avec des données provenant d’une source externe, offrant ainsi une expérience utilisateur plus fluide et flexible.
Avant de commencer à coder, il est crucial de définir la structure de la base de données qui stockera les options pour notre liste déroulante. Supposons que nous voulions créer une liste déroulante pour les catégories de produits dans un magasin en ligne. Nous aurons besoin d’une table dans notre base de données pour stocker ces catégories. Voici un exemple de structure de table simple :
CREATE TABLE categories (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(50) NOT NULL
);
Maintenant que notre structure de base de données est en place, nous pouvons passer à la connexion à la base de données depuis notre script PHP. Voici un exemple de code pour établir une connexion avec MySQL :
<?php
$serveur = "localhost";
$utilisateur = "votre_nom_utilisateur";
$mot_de_passe = "votre_mot_de_passe";
$base_de_donnees = "nom_de_votre_base_de_donnees";
// Connexion à la base de données
$connexion = new mysqli($serveur, $utilisateur, $mot_de_passe, $base_de_donnees);
// Vérification de la connexion
if ($connexion->connect_error) {
die("Erreur de connexion à la base de données : " . $connexion->connect_error);
}
?>
Maintenant que nous sommes connectés à notre base de données, nous pouvons récupérer les données nécessaires pour peupler notre liste déroulante. Dans notre exemple, nous récupérerons les catégories de produits à partir de notre table ‘categories’. Voici comment nous pouvons le faire en PHP :
<?php
// Requête SQL pour récupérer les catégories
$sql = "SELECT id, nom FROM categories";
$resultat = $connexion->query($sql);
// Vérification des résultats de la requête
if ($resultat->num_rows > 0) {
// Parcourir chaque ligne de résultats
while($row = $resultat->fetch_assoc()) {
// Afficher chaque catégorie dans la liste déroulante
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
} else {
echo "Aucune catégorie trouvée";
}
?>
Maintenant que nous avons notre code PHP pour récupérer les catégories de produits, nous pouvons l’intégrer dans une page web pour afficher notre liste déroulante. Voici un exemple de code HTML avec la liste déroulante :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Liste déroulante PHP/MySQL</title>
</head>
<body>
<h1>Sélectionnez une catégorie :</h1>
<form action="traitement.php" method="post">
<select name="categorie">
<?php include 'connexion.php'; ?>
</select>
<input type="submit" value="Valider">
</form>
</body>
</html>
Voici comment nous pourrions réécrire ces exemples en incluant du code PHP et MySQL :
<select name="categorie">
<?php
$resultat = $connexion->query("SELECT id, nom FROM categories");
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
<select name="pays">
<?php
$resultat = $connexion->query("SELECT id, nom FROM pays");
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
<select name="categorie">
<?php
$resultat = $connexion->query("SELECT id, nom FROM categories_articles");
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
<select name="departement">
<?php
$resultat = $connexion->query("SELECT id, nom FROM departements");
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
<select name="sujet">
<?php
$resultat = $connexion->query("SELECT id, nom FROM sujets");
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
Ces exemples illustrent comment intégrer dynamiquement des données provenant d’une base de données MySQL dans des listes déroulantes HTML à l’aide de PHP. En utilisant cette approche, vous pouvez créer des interfaces utilisateur interactives et dynamiques pour vos applications web.
Voici comment ces cas particuliers pourraient être implémentés avec du code PHP et MySQL :
<select name="categorie_principale" onchange="getSousCategories(this.value)">
<option value="">Sélectionnez une catégorie principale</option>
<?php
$resultat = $connexion->query("SELECT id, nom FROM categories WHERE parent_id IS NULL");
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
<select name="sous_categorie" id="sous_categorie">
<option value="">Sélectionnez une sous-catégorie</option>
</select>
<script>
function getSousCategories(categoriePrincipaleId) {
var sousCategorieSelect = document.getElementById("sous_categorie");
sousCategorieSelect.innerHTML = "<option value=''>Chargement en cours...</option>";
// Requête AJAX pour récupérer les sous-catégories en fonction de la catégorie principale sélectionnée
// Exemple d'utilisation de jQuery pour la simplicité
$.get("getSousCategories.php?categorie_id=" + categoriePrincipaleId, function(data) {
sousCategorieSelect.innerHTML = data;
});
}
</script>
<select name="projet">
<option value="">Sélectionnez un projet</option>
<?php
$resultat = $connexion->query("SELECT id, nom FROM projets WHERE responsable_id = " . $_SESSION['utilisateur_id']);
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
<select name="categorie" id="categorie">
<option value="">Sélectionnez une catégorie</option>
</select>
<script>
$('#recherche').on('input', function() {
var recherche = $(this).val();
$.get("filtrerCategories.php?recherche=" + recherche, function(data) {
$('#categorie').html(data);
});
});
</script>
<select name="aeroport">
<option value="">Sélectionnez un aéroport</option>
<?php
$response = file_get_contents('https://api.example.com/aeroports');
$data = json_decode($response, true);
foreach($data as $aeroport) {
echo "<option value='" . $aeroport['code'] . "'>" . $aeroport['nom'] . "</option>";
}
?>
</select>
<select name="categorie">
<option value="">Sélectionnez une catégorie</option>
<?php
$langue = $_SESSION['langue']; // Supposons que la langue soit stockée dans une session
$resultat = $connexion->query("SELECT id, nom_$langue AS nom FROM categories");
while($row = $resultat->fetch_assoc()) {
echo "<option value='" . $row['id'] . "'>" . $row['nom'] . "</option>";
}
?>
</select>
Ces exemples illustrent comment intégrer des fonctionnalités avancées dans des listes déroulantes dynamiques en utilisant PHP, MySQL et parfois JavaScript. Cela permet d’offrir une expérience utilisateur plus riche et personnalisée dans différentes applications web.
Conclusion :
Dans cet article, nous avons vu comment créer une liste déroulante dynamique en utilisant PHP et MySQL. En utilisant les données stockées dans une base de données, nous avons pu peupler la liste déroulante avec des options dynamiques, offrant ainsi une expérience utilisateur plus flexible et évolutive. Cette approche peut être étendue et adaptée à diverses applications nécessitant des sélections dynamiques basées sur des données externes.
Excel offre plusieurs méthodes pour calculer une moyenne tout en tenant compte des filtres ou…
Excel propose plusieurs fonctions pour insérer ou manipuler la date actuelle. Voici les principales méthodes…
Lorsque des nombres sont stockés sous forme de texte dans Excel, ils ne peuvent pas…
Extraire uniquement les chiffres d'une cellule contenant du texte et des nombres mélangés est une…
Pour supprimer plusieurs caractères spécifiques (par exemple, des symboles, chiffres ou lettres indésirables) dans des…
Excel permet de calculer différents types d'écarts selon le contexte, que ce soit pour des…
This website uses cookies.