我为我的网站制作了一种投票系统插件。当用户点击'喜欢'按钮,jQuery ajax应该将该点击发送到functions.php
中我称为vote_funct
的函数。 jQuery ajax脚本返回成功消息,但该函数根本没有被调用。我不明白我做错了什么。下面是我的jQuery ajax代码:
(function($){ //wordpress jquery no conflict starts here
$(document).ready( function($) {
var counter;
var id;
var ajaxurl = MyAjax.ajax_url;
$('.fa-plus').click(function(){
counter = 0;
id = $(this).closest('div').prop("id");
counter = counter+1;
$(this).css('color','green');
$(this).removeClass('fa fa-plus');
$(this).addClass('fa fa-check');
$.ajax({
url : ajaxurl,
type : "POST",
data : {
'action' : 'vote_funct',
'counter': counter,
'id' : id
},
success:function(data){
console.log("counter");
}
}).error(function(xhr, status){
switch(status){
case 404:
alert("404 not found");
break;
case 500:
alert("500 server error");
break;
case 0:
alert("0 request aborted");
break;
default:
alert("unknown " + ajaxurl);
}
});
}) ;
});
})(jQuery);
然后我的vote_funct
位于functions.php
$myfile = fopen("data.txt", "w") or die("Unable to open file!");
fwrite($myfile, json_encode($_POST));
function vote_funct(){
$id = $_POST['id'];
$votes = $_POST['counter'];
if( !empty( $_POST ) ){
global $wpdb;
$wpdb->query( $wpdb->prepare("UPDATE fwwp_votes SET votes = votes +1 WHERE id = $id") );
}
echo true;
die();
}
add_action( 'wp_ajax_nopriv_vote_funct', 'vote_funct' );
add_action( 'wp_ajax_vote_funct', 'vote_funct' );
仅供参考data.txt
正在正确写入所有数据。
答案 0 :(得分:0)
根据您使用的jQuery版本,可能不推荐使用“错误”函数(从jQuery 3.0开始删除)..
如果是这样,请尝试更改此..
}).error(function(xhr, status){
到此(http://api.jquery.com/deferred.fail/)..
}).fail(function(){