Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich ein kaskadierendes Dropdown-Menü mit automatisch ausgefülltem zweiten Menü?

Wie erstelle ich ein kaskadierendes Dropdown-Menü mit automatisch ausgefülltem zweiten Menü?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-21 06:50:30326Durchsuche

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

Kaskadierendes Dropdown-Menü: Automatisches Ausfüllen des zweiten Menüs basierend auf der ersten Auswahl

In diesem Szenario möchten wir zwei miteinander verbundene Dropdown-Menüs erstellen, Dabei ändern sich die Optionen im zweiten Menü dynamisch basierend auf der im ersten Menü getroffenen Auswahl.

Anfängliche HTML-Struktur:

<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>

Ereignisbehandlung:

Um die gewünschte Funktionalität zu erreichen, verwenden wir einen Ereignis-Listener im ersten Dropdown-Menü, um einen Ajax-Aufruf auszulösen, wenn sich die Auswahl ändert.

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

Umgang mit Ajax Anfrage:

In der Datei „process.php“ erstellen wir die Optionen für das zweite Dropdown-Menü basierend auf der ausgewählten Kategorie.

<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>

Dynamisches Aktualisieren des zweiten Dropdown-Menüs :

Der Ajax-Aufruf füllt das #items-Element mit den neuen Optionen, die in process.php generiert werden.

<code class="javascript">$("#items").html(data);</code>

Benutzerdefinierte Implementierung ohne Datenbank:

Wenn Sie keine Datenbank haben, können Sie die Optionen für jede Kategorie in einem Array manuell definieren und das zweite Dropdown-Menü über JavaScript aktualisieren.

<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>

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein kaskadierendes Dropdown-Menü mit automatisch ausgefülltem zweiten Menü?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn