Cập nhật: Tôi đã quản lý để AJAX hoạt động, nhưng không phải trong sự kiện nhấp chuột. Tôi đã cập nhật câu hỏi để phù hợp với điều này.
Tôi đang thử một số mã tôi tìm thấy trên trang: 'AJAX in Plugins' .
Tuy nhiên tôi không thể làm cho nó hoạt động được và tôi thực sự không biết bắt đầu tìm kiếm ở đâu. Nó hoạt động khi tôi loại bỏ chức năng nhấp và chỉ chạy mã trên pageload.
Tôi có một tệp Javascript trông ike này:
jQuery(document).ready(function(){
jQuery("#createremotesafe").click(function(){
alert ('test');
var data = {
action: 'my_action',
whatever: 1234
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
});
và ở đâu đó trong tập lệnh PHP của tôi tạo nút nên thực thi Javascript (tức là trang quản trị) và cả phần còn lại của trang:
add_action('wp_ajax_my_action', 'my_action_callback');
echo 'test2';
function my_action_callback() {
global $wpdb; // this is how you get access to the database
$whatever = $_POST['whatever'];
$whatever += 10;
echo $whatever;
die(); // this is required to return a proper result
}
Tôi nhận được cả Alert ('test')
và echo 'test2'
, nhưng không có cảnh báo phản hồi. Không có lỗi Javascript hay bất cứ điều gì. Mã của tôi chắc chắn đang chạy, vì tôi có thể thấy cả hai 'thử nghiệm', nhưng tại sao AJAX không nhận được bất kỳ phản hồi nào? Hàm php của tôi có biến mất sau khi tải trang không? Có lẽ tôi không thể / không nên sử dụng các hàm AJAX tích hợp trong wp?
Nó cũng không hiển thị một hộp cảnh báo trống, chỉ là không có gì xảy ra.
ajaxurl
định nghĩa và đúng? 2) Bạn đang thấy điềuecho 'test2'
gì xảy ra?