这是我的功能
function multi_delete(){
echo ':D';
die();
}
我的添加行为
add_action('wp_ajax_multi_delete','multi_delete');
和js代码
jQuery('#ckta_products_admin').submit(function(e) {
e.preventDefault();
jQuery.ajax({
type: "POST",
url: '/admin-ajax.php?action=multi_delete',
data: jQuery(this).serialize(),
dataType: "json",
success: function(data){if(data==1){
location.reload(true);
}}
});
});
回复是" 0 "。我不需要管理员和nopriv。其他ajax调用工作但不是这个。谁知道我做错了什么?
答案 0 :(得分:1)
您已将数据类型设置为" json",但您仍然返回非json字符串,因此当jQuery尝试反序列化它时,它可能会失败并且将其设置为" null"。也许尝试使用一些有效的JSON:
function multi_delete(){
echo '{"test": ":D"}';
die();
}
答案 1 :(得分:1)
使用正确的json格式。
function multi_delete(){
echo json_encode(array(
'success' => true
));
die();
}
jQuery('#ckta_products_admin').submit(function(e) {
e.preventDefault();
jQuery.ajax({
type: "POST",
url: '/admin-ajax.php?action=multi_delete',
data: jQuery(this).serialize(),
dataType: "json",
success: function(data){
if(data.success){
location.reload(true);
}
}
});
});
答案 2 :(得分:0)
你把你的
add_action('wp_ajax_multi_delete','multi_delete');
在插件主文件或WordPress主题functions.php
文件中?