我写了一个使用ajax的插件。该插件应该允许用户(如果登录或不登录)删除数据库上的值。
我的问题是,ajax响应总是为NULL,我不明白为什么!我用谷歌搜索了几个小时,我试着翻转......这是我的脚本:
function my_script_enqueuer(){
global $post;
$content = $post->post_content;
if(has_shortcode($content, 'shortcode')){
wp_register_script('my_script',
WP_PLUGIN_URL.'/my-plugin/js/my-plugin.js',
array('jquery'));
wp_localize_script('my_script',
'myAjax',
array( 'ajaxurl' => admin_url('admin-ajax.php')));
wp_enqueue_script('jquery');
wp_enqueue_script('my_script');
}
}
add_action( 'wp_enqueue_scripts', 'my_script_enqueuer' );
add_action('wp_ajax_del_value', 'del_value');
add_action('wp_ajax_nopriv_del_value', 'del_value');
function del_value(){
$val = $_POST['val'];
echo $val;
//$wpdb->...an so on
die();
}
在这里我的ajax(my_plugin.js)
jQuery(document).ready( function(){
jQuery(document).on('click', '.delval', function($){
var val = this.id;
jQuery.ajax({
type: "POST",
url: myAjax.ajaxurl,
data: {action:"del_value", val: val},
success: function(response){
if(response.type = "success"){
console.log(response);
}else{
console.log("Error");
}
}
});
});
});
答案 0 :(得分:0)
问题不在于此处的代码。我复制了提供的示例,它对我有用。
当我在过去遇到这样的问题时,通常会归结为两个问题之一:
答案 1 :(得分:0)
知道了!我的整个脚本中有两次相同的变量(不同的用法)。不幸的是,
add_action('wp_ajax_nopriv_del_value', 'del_value');
......是......
add_action('wp_ajax_nopriv_my_del_value', 'del_value');
...在我的剧本中。
很抱歉。我希望我的剧本有时会以某种方式帮助别人。
电贺, Yab86