Làm thế nào để truyền tham số dữ liệu cho trình xử lý chức năng hành động ajax


7

Tôi có js sau để xử lý yêu cầu ajax:

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

Và đây là chức năng xử lý ajax của tôi (hy vọng thuật ngữ của tôi là chính xác):

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

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

   die();
}

Như bạn có thể thấy, hành động này load_postlà tốt, nhưng tôi cần chuyển another_partham số cho hàm ajax của mình để tôi có thể gán giá trị của nó cho một biến và sử dụng nó cho mục đích của mình.

Câu trả lời:


12

Khi bạn sử dụng jQuery.post(), datađược gửi dưới dạng $_POSTđối số thông thường .

Vì vậy, JavaScript JavaScript này

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

Có sẵn trong chức năng gọi lại của bạn mỗi:

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

Và khi bạn đang sử dụng jQuery.get(), dữ liệu được đưa vào $_GET. Bạn cũng có thể sử dụng $_REQUESTtrả về cả hai GETPOSTdữ liệu (và COOKIE). Nhưng bạn nên luôn luôn yêu cầu tài nguyên cụ thể để tránh tiêm từ các nguồn bạn không mong đợi, như cookie.


Xin lỗi, WordPress của tôi thoát khỏi đầu vào, khi nó là json_encoding. Một số dấu gạch chéo được thêm vào trước mặt của "nhân vật. Wpartisan.me/tutorials/...
Jakob Alexander Eichler
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.