我正在尝试在wordpress后端实施星级评分。我已经成功实现了system.now我正在尝试将星级评级添加到数据库,同时使用admin-ajax点击星标。
这是我的HTML:
<li name="star" value="one" onmouseover="highlightStar(this);" onmouseout="removeHighlight();" onclick="addRating(this);">
鼠标点击它调用addrating函数,我写了我的ajax,这是我的ajax代码:
function addRating(obj) {
$('ul.rating li').each(function(index) {alert("hello");
$(this).addClass('selected');
var rate=$('#rating').val((index+1));
var postid=$(this).data('postid');
if(index == $("ul.rating li").index(obj)) {
return false;
}
$.ajax({ url:"<?php echo site_url().'/wp-content/themes/options-framework-theme-master/register_ajax.php';?>",
type:'post',
data:{
postid:'postid',
rate:'rate'},
success: function(result){
alert(result);
}
}
});
});
}
这是ajax调用的地方:
<?php
$id = $post['postid'];
update_post_meta($post_id,'starrating',$_POST['rating']);
?>
马问题是在点击星星时没有ajax通话。请帮助我,在ajax中有点新。
答案 0 :(得分:1)
要向wordpress添加ajax,您可以按照以下步骤操作:
第1步:前端(php文件)外观
<li name="star" value="one"
onmouseover="highlightStar(this);"
onmouseout="removeHighlight();"
onclick="addRating(this);">
第2步:在javascript(验证和ajax调用)中:
function addRating(obj) {
$('ul.rating li').each(function(index) {alert("hello");
$(this).addClass('selected');
var rate=$('#rating').val((index+1));
var postid=$(this).data('postid');
if(index == $("ul.rating li").index(obj)) {
return false;
}
var url = "/wp-admin/admin-ajax.php";
$.ajax({ url:url,
type:'post',
data:{
postid:'postid',
rate:'rate'},
success: function(result){
alert(result);
}
}
});
});
}
第3步:挂钩 一个例子:
add_action('wp_ajax_my_function_name', 'my_function_name');// for those connected to your app
add_action('wp_ajax_nopriv_my_function_name', 'my_function_name');// for everybody
步骤4:编写实际函数来处理后端逻辑(在functions.php或类似的中)
function my_function_name(){
// my logic goes here
}
祝你好运!