Tous les cours gratuit

Apprendre à programmer

Créer une liste déroulante dynamique en PHP à partir d’une base de données MySQL

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.

Étape 1 : Création de la structure de la base de données


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
);
Étape 2 : Connexion à la base de données


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);
}
?>
Étape 3 : Récupération des données de la base de données


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";
}
?>
Étape 4 : Intégration dans une page web


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 :

Sélection de catégories de produits dans un magasin en ligne :
<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>
Choix de villes ou de pays dans un formulaire d’inscription :
<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>
Sélection de catégories ou de tags dans un blog ou un système de gestion de contenu (CMS) :
<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>
  1. Choix de départements dans un formulaire de demande d’emploi :
<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>
Sélection de sujets ou de matières dans un système de gestion de l’apprentissage (LMS) :
<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 :

  1. Liste déroulante multiniveau :
<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>
  1. Liste déroulante dynamique en fonction de l’utilisateur connecté :
<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>
  1. Filtrage ou recherche en temps réel :
    Cette fonctionnalité peut nécessiter l’utilisation de JavaScript et d’une technique de requête AJAX pour filtrer les options de la liste déroulante en fonction de la saisie de l’utilisateur. Voici un exemple basique :
<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>
  1. Données dynamiques provenant de sources externes :
    Le principe est similaire à celui des autres exemples, mais vous pouvez utiliser une API tierce pour récupérer les données. Voici un exemple simplifié :
<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>
  1. Prise en charge de données multilingues :
    Vous pouvez stocker les libellés des options dans une table de traduction et les récupérer en fonction de la langue sélectionnée par l’utilisateur. Voici un exemple simplifié :
<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.

Autres articles

Exercices de Programmation Corrigés sur le Microprocesseur...
Le microprocesseur Motorola 6809 est un processeur 8 bits très...
Read more
Programmation ISO (ou G-code) : Guide
La programmation ISO (ou G-code) est un langage standard utilisé...
Read more
Exercices Corrigés Programmation ISO en tournage CNC
Voici une série d'exercices corrigés sur la programmation ISO en...
Read more
AZ

Recent Posts

Audits, Suivi des Améliorations et Préparation pour la Recertification ISO 9001

Ce cours se concentre sur les audits et la phase après la mise en place…

4 heures ago

Optimiser et Maintenir le Système de Management de la Qualité ISO 9001

Une fois que votre entreprise a obtenu la certification ISO 9001, il est crucial de…

4 heures ago

Créer une Carte de Positionnement Concurrentiel ➤ Modèle Excel

Une carte de positionnement concurrentiel est un outil visuel qui aide à évaluer la position…

5 heures ago

Compte rendu de lecture pour Le Père Goriot d’Honoré de Balzac

Titre : Le Père Goriot Auteur : Honoré de BalzacDate de publication : 1834-1835Genre :…

6 heures ago

Rédiger un projet en Python concernant la maintenance des machines

Pour rédiger un projet en Python concernant la maintenance des machines, voici un exemple de…

6 heures ago

Maîtriser l’utilisation de la méthode join en Python

La méthode join en Python est un outil puissant pour concaténer des éléments d'une séquence…

7 heures ago

This website uses cookies.