Admin-Ajax调用无法实现星级评级

时间:2017-07-11 13:00:53

标签: php ajax wordpress

我正在尝试在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中有点新。

1 个答案:

答案 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
}
祝你好运!