Heim > Artikel > Backend-Entwicklung > Wie erstelle ich ein kaskadierendes Dropdown-Menü mit automatisch ausgefülltem zweiten Menü?
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!