web-dev-qa-db-ja.com

Ajaxアクション関数ハンドラにデータパラメータを渡す方法

私はajaxリクエストを処理するために以下のjsを持っています:

$('#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);
        });
  });

そしてこれが私のajaxハンドラー関数です(うまくいけば私の用語は正しいです):

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

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

   die();
}

ご覧のとおり、アクションはload_postですが、これは問題ありませんが、その値を変数に割り当てて私の目的に使用できるように、another_parパラメーターを私のajax関数に渡す必要があります。

7

jQuery.post() を使用すると、dataは通常の$_POST引数として送信されます。

このJavaScriptは…

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

…はコールバック関数で利用可能です:

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

jQuery.get()を使用している場合、データは$_GETにあります。 GETPOSTの両方のデータ(およびCOOKIE)を返す$_REQUESTを使用することもできます。しかし、クッキーのように、あなたが予想していなかったソースからのインジェクションを避けるために、あなたは常に特定のリソースを求めるべきです。

11
fuxia