Comment créer un menu déroulant en cascade avec un deuxième menu à remplissage automatique ?

Mary-Kate Olsen
Libérer: 2024-10-21 06:50:30
original
221 Les gens l'ont consulté

How to Create a Cascading Dropdown Menu with Auto-Populating Second Menu?

Menu déroulant en cascade : deuxième menu à remplissage automatique basé sur la première sélection

Dans ce scénario, nous souhaitons créer deux menus déroulants interconnectés, où les options du deuxième menu changent dynamiquement en fonction de la sélection effectuée dans le premier menu.

Structure HTML initiale :

<code class="html"><select name="category">
    <option value="0">None</option>
    <option value="1">First</option>
    <option value="2">Second</option>
    <option value="3">Third</option>
    <option value="4">Fourth</option>
</select>

<select name="items">
    <!-- Options will be populated dynamically -->
</select></code>
Copier après la connexion

Gestion des événements :

Pour obtenir la fonctionnalité souhaitée, nous utiliserons un écouteur d'événement dans la première liste déroulante pour déclencher un appel Ajax lorsque la sélection change.

<code class="javascript"><script type="text/javascript">
    function changeItems(categoryId) {
        $.ajax({
            url: 'process.php?category=' + categoryId,
            success: function(data) {
                $("#items").html(data);
            }
        });
    }
</script></code>
Copier après la connexion

Gérer l'Ajax Requête :

Dans le fichier process.php, nous construirons les options de la deuxième liste déroulante en fonction de la catégorie sélectionnée.

<code class="php">$categoryId = $_GET['category'];

switch ($categoryId) {
    case 1:
        $options = array(
            'Smartphone', 'Charger'
        );
        break;
    case 2:
        $options = array(
            'Basketball', 'Volleyball'
        );
        break;
    // ...
}

foreach ($options as $option) {
    echo "<option value='$option'>$option</option>";
}</code>
Copier après la connexion

Mise à jour dynamique de la deuxième liste déroulante :

L'appel Ajax remplit l'élément #items avec les nouvelles options générées dans process.php.

<code class="javascript">$("#items").html(data);</code>
Copier après la connexion

Implémentation personnalisée sans base de données :

Si vous n'avez pas de base de données, vous pouvez définir manuellement les options pour chaque catégorie dans un tableau et mettre à jour la deuxième liste déroulante via JavaScript.

<code class="javascript">// Define options for each category
const categories = ['First', 'Second', 'Third', 'Fourth'];
const optionArrays = [
    ['Smartphone', 'Charger'],
    ['Basketball', 'Volleyball'],
    // ...
];

// Update second dropdown on category change
$(document).on('change', 'select[name="category"]', function() {
    const selectedCategory = $(this).val();
    const options = optionArrays[selectedCategory - 1]; // Subtract 1 to match array indices

    $('#items').empty();
    for (let i = 0; i < options.length; i++) {
        $('#items').append(`<option value="${options[i]}">${options[i]}</option>`);
    }
});</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!