Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man automatisch wechselnde Optionen im zweiten Dropdown-Menü basierend auf der ersten Dropdown-Auswahl?

Wie implementiert man automatisch wechselnde Optionen im zweiten Dropdown-Menü basierend auf der ersten Dropdown-Auswahl?

DDD
DDDOriginal
2024-10-21 06:45:02990Durchsuche

How to Implement Auto-changing Options in Second Dropdown Menu Based on First Dropdown Selection?

Automatische Änderung der Optionen im zweiten Dropdown-Menü basierend auf der ersten Dropdown-Auswahl

Beim Erstellen mehrerer Dropdown-Menüs mit den Optionen im zweiten Das Menü hängt von der im ersten Menü getroffenen Auswahl ab. Dies ist möglich, ohne auf eine Datenbank angewiesen zu sein.

Ersteinrichtung

Das erste Dropdown-Menü wird Zeigt eine Liste von Kategorien an, während im zweiten Dropdown-Menü Elemente angezeigt werden, die mit der ausgewählten Kategorie verknüpft sind.

Erstes Dropdown-Menü:

<select name="category"></p>
<pre class="brush:php;toolbar:false"><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>


Zweite Dropdown-Liste:

<select name="items"><br></select><br>

Dynamische Optionen im zweiten Dropdown

Um die Optionen im zweiten Dropdown basierend auf der Auswahl im ersten Dropdown zu aktualisieren, benötigen wir eine AJAX-Funktion, die die ausgewählte Kategorie an ein PHP-Skript sendet.

AJAX-Funktion:

<script type="text/javascript"></p>
<pre class="brush:php;toolbar:false">function ajaxfunction(parent)
{
    $.ajax({
        url: 'process.php?parent=' + parent;
        success: function(data) {
            $("#sub").html(data);
        }
    });
}


Diese Funktion ist an das onchange-Ereignis des ersten Dropdowns angehängt.

Platzieren Sie im HTML ein weiteres Auswahlelement mit der ID „sub“, um die dynamisch generierten Optionen anzuzeigen.

<select onchange="ajaxfunction(this.value)"></p>
<pre class="brush:php;toolbar:false"><!-- Options would have been initially populated here -->