Übergeben von Datenparametern an den Ajax-Aktionsfunktionshandler

7

Ich habe die folgenden js, um eine Ajax-Anfrage zu verarbeiten:

$('#someelement').click(function() {

        var cokeValue = 'coke';

        var data = {
            action: 'load_post',
            another_par: someVar
        };

        jQuery.post(ajax_object.ajax_url, data, function(response) {
            alert(response);
        });
  });

Und dies ist meine Ajax-Handler-Funktion (hoffentlich ist meine Terminologie korrekt):

add_action('wp_ajax_get_coke', 'get_coke_ajax');
function get_coke_ajax() {

   // need to get another_par in here !!!!!!!

   die();
}

Wie Sie sehen können, ist die Aktion in load_postOrdnung, aber ich muss den another_parParameter an meine Ajax-Funktion übergeben, damit ich seinen Wert einer Variablen zuweisen und für meine Zwecke verwenden kann.

Ollicca Mindstorm
quelle

Antworten:

12

Wenn Sie verwenden jQuery.post(), datawird das als reguläre $_POSTArgumente gesendet .

Also dieses JavaScript…

var data = {
    action: 'load_post',
    foo:    'bar'
};

… Ist in Ihrer Rückruffunktion verfügbar unter:

$action = $_POST['action'];
$foo    = $_POST['foo']; // bar

Und wenn Sie verwenden jQuery.get(), sind die Daten in $_GET. Sie können auch verwenden, $_REQUESTwas sowohl GETals auch POSTdata (und COOKIE) zurückgibt . Sie sollten jedoch immer nach der spezifischen Ressource fragen, um eine Injektion aus Quellen zu vermeiden, die Sie nicht erwartet haben, wie z. B. ein Cookie.

Fuxia
quelle
Entschuldigung, mein WordPress entgeht der Eingabe, wenn es json_encoded ist. Einige Schrägstriche werden vor "Zeichen" hinzugefügt. Wpartisan.me/tutorials/…
Jakob Alexander Eichler