Sende- und Empfangsparameter von AJAX in Select2

Lesezeit: 2 Minuten

Sende und Empfangsparameter von AJAX in Select2
Abu Abu

So senden Sie Parameter von AJAX in Wählen Sie 2 und Empfangen in PHP ?

Ich versuche, Parameter wie unten zu senden.

     let element_id = event.target.id;
     let selectEle = cellEle.children("select").select2({
          ajax: {
            url: "/wp-admin/admin-ajax.php",
            dataType: 'json',
            data: function (element_id) {
                 return { 
                    q: element_id,
                    action: 'get_data'
                 };
             },
            type: "post",
            processResults: function(data) {                             
              console.log(data);
            }
          }
        });

Ich versuche, Parameter wie unten zu erhalten.

function get_data()
{
    echo json_encode($_POST['q']);
    die;
}

Ich erhalte ein Ergebnis null.

Geben Sie hier die Bildbeschreibung ein

  • $_POST[‘q’] ist für Formulardaten … Ihre Daten sollten dann so aussehen: “q=”+element_id+”&action=get_data”;

    – Schlomtzion

    23. Dezember 2021 um 10:31 Uhr

  • Danke @Shlomtzion. Aber ich sende Daten als POST. Wie kann ich Parameterwerte in PHP erhalten?

    – abu abu

    23. Dezember 2021 um 10:49 Uhr

Der Name element_id wird sowohl für eine in der ersten Zeile deklarierte Variable verwendet let element_id = event.target.id; und als Name des Parameters, den die Datenfunktion verwendet data: function (element_id) {.

Wenn die Datenfunktion aufgerufen wird, fügt select2 die Parameter von select2 ein element_id auf die Funktion beschränkt, also hat sie Variablen wie _type auf ‘Abfrage’ setzen und term auf den Suchbegriff gesetzt (falls einer eingegeben wurde). Dies ist näher beschrieben unter https://select2.org/data-sources/ajax#request-parameters.

Ich würde vorschlagen, den für die Datenfunktion verwendeten Parameternamen anzupassen. Ich habe es auf aktualisiert params im Beispiel unten, um mit den Beispielen auf der Website select2 übereinzustimmen. Die element_id Die in der ersten Zeile gesetzte Variable kann dann zum Übergeben der Daten verwendet werden.

let element_id = event.target.id;
let selectEle = cellEle.children("select").select2({
  ajax: {
    url: "/wp-admin/admin-ajax.php",
    dataType: 'json',
    data: function (params) {
         return { 
            q: element_id,
            action: 'get_data'
         };
     },
    type: "post",
    processResults: function(data) {                             
      console.log(data);
    }
  }
});

  • Danke @Chris C. Könnten Sie bitte etwas über die PHP-Seite sagen?

    – abu abu

    23. Dezember 2021 um 13:05 Uhr

  • Soweit ich weiß, sollte die PHP-Seite in Ordnung sein. Anscheinend können Sie bereits auf $_POST zugreifen[‘action’]mit diesem Update für das JavaScript $_POST[‘q’] sollte den gesuchten Wert haben

    – Chris C

    23. Dezember 2021 um 13:07 Uhr


998990cookie-checkSende- und Empfangsparameter von AJAX in Select2

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy