Heim >Backend-Entwicklung >PHP-Tutorial >Wie fülle ich ein abhängiges Dropdown-Feld mit AJAX und PHP?

Wie fülle ich ein abhängiges Dropdown-Feld mit AJAX und PHP?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-12 14:46:15375Durchsuche

How to Populate a Dependent Dropdown Box Using AJAX and PHP?

Wie kann ich ein dynamisches Dropdown-Feld basierend auf der Auswahl eines anderen Dropdown-Felds füllen?

Ich habe eine Datenbanktabelle namens „Kategorie“, wie unten gezeigt:

[Bild einer Datenbanktabelle mit dem Namen „Kategorie“ mit den Spalten „id“, „name“ und „master“]

Ich versuche eine Dynamik zu erstellen Dropdown-Feld und das Indexskript wird angezeigt als:

[Codebeispiel des Indexskripts]

Die update.php wird angezeigt als:

[Codebeispiel des update.php]

Das 2. Dropdown-Feld zeigt nicht die vom 1. Dropdown-Feld abhängigen Werte an, wie gezeigt:

[Bild von ein Formular mit zwei Dropdown-Feldern. Das erste Dropdown-Feld enthält Optionen für „Eine auswählen“, „Kategorie 1“ und „Kategorie 2“. Das zweite Dropdown-Feld enthält nur die Option „----“.]

Kann mir bitte jemand helfen.

Antwort:

An Erstellen Sie ein dynamisches Dropdown-Feld, in dem die Optionen im zweiten Feld von der Auswahl im ersten Feld abhängen. Sie können Folgendes verwenden Ansatz:

  1. Verarbeiten Sie das Änderungsereignis des ersten Dropdown-Felds: Fügen Sie mit jQuery einen Änderungsereignis-Listener zum ersten Dropdown-Feld hinzu. Wenn sich der Wert des ersten Dropdown-Felds ändert, wird dieses Ereignis ausgelöst.
  2. Eine AJAX-Anfrage senden: Stellen Sie im Ereignishandler eine AJAX-Anfrage an eine PHP-Datei (z. B. update.php), das die Optionen für das zweite Dropdown-Feld basierend auf dem ausgewählten Wert des ersten Dropdown-Felds zurückgibt.
  3. Behandeln Sie das AJAX-Antwort: Analysieren Sie im Erfolgsrückruf der AJAX-Anfrage die Antwortdaten, die den HTML-Code für die Optionen enthalten, die dem zweiten Dropdown-Feld hinzugefügt werden sollen.
  4. Aktualisieren Sie die Zweites Dropdown-Feld:Verwenden Sie JavaScript, um den HTML-Code des zweiten Dropdown-Feldes mit den aus den Antwortdaten generierten Optionen zu aktualisieren.
  5. Aktivieren Sie die Zweites Dropdown-Feld: Sobald die Optionen aktualisiert sind, aktivieren Sie das zweite Dropdown-Feld für die Benutzerauswahl.

Hier ist ein Beispiel, das dies demonstriert Ansatz:

tester.php:

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(function() {
            $('#first_dropdown').change(function() {
                var value = $(this).val();
                $.ajax({
                    url: 'update.php',
                    method: 'POST',
                    data: { value: value },
                    success: function(response) {
                        $('#second_dropdown').html(response);
                        $('#second_dropdown').prop('disabled', false);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <select>

update.php:

<?php
if (isset($_POST['value'])) {
    $selectedValue = $_POST['value'];
    $data = array();

    // Here you would typically query your database to retrieve options based on the selected value.
    if ($selectedValue == 'category1') {
        $data[] = '<option value="option1">Option 1</option>';
        $data[] = '<option value="option2">Option 2</option>';
    } elseif ($selectedValue == 'category2') {
        $data[] = '<option value="option3">Option 3</option>';
        $data[] = '<option value="option4">Option 4</option>';
    }

    echo implode('', $data);
}
?>

Indem Sie diesem Ansatz folgen können Sie dynamische Dropdown-Felder mit mehreren Ebenen erstellen, wobei die Optionen in jedem Dropdown-Feld von der im vorherigen Dropdown-Feld getroffenen Auswahl abhängen.

Das obige ist der detaillierte Inhalt vonWie fülle ich ein abhängiges Dropdown-Feld mit AJAX und PHP?. 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