Heim > Backend-Entwicklung > PHP-Tutorial > 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
Freigeben: 2024-10-21 06:50:30
Original
350 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage