投票后阿贾克斯禁用星级率

时间:2014-02-27 04:00:42

标签: php ajax codeigniter rate

我的费率有问题,我的代码如下

$(function(){
    var href = jQuery(location).attr('href');

    $('.rate-it').rating({
        required: true,
        callback: function(value, link){ 
            $.ajax({
                type: "POST",
                url: "<? echo base_url('post/rate/'); ?>",
                dataType: "json",
                data: "&postlink=" + href + "&ratevalue=" + value,
                success: function(msg){
                    $('.rate-it').attr('disabled', true);
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    displayError();
                }
            });
        },

如何设置人们不能反复投票? 我正在使用codeigniter

2 个答案:

答案 0 :(得分:0)

$(function(){
    var href = jQuery(location).attr('href');

    $('.rate-it').rating({
        required: true,
        callback: function(value, link){ 
            $.ajax({
                type: "POST",
                url: "<? echo base_url('post/rate/'); ?>",
                dataType: "json",
                data: "&postlink=" + href + "&ratevalue=" + value,
                success: function(msg){
                    $('.rate-it').attr('disabled', true);
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    displayError();
                }
            });
        },

        focus: function(value, link){
            var tip = $('#rate-result');
            tip[0].data = tip[0].data || tip.html();
            tip.html(link.title || 'value: '+value);
        },

        blur: function(value, link){
            var tip = $('#rate-result');
            $('#rate-result').html(tip[0].data || '');
        }           
    });
});

答案 1 :(得分:0)

如果您希望某人无法重复投票,您必须禁用该按钮并在服务器端检查此客户端尚未投票。

否则可以拦截ajax请求并重复它。

你可以尝试一下:

在firefox或chrome中,浏览到您的站点,键入F12,转到控制台菜单并复制以下内容:

$.ajax({
    type: "POST",
    url: "[your url here]",
    dataType: "json",
    data: "&postlink=" + href + "&ratevalue=" + value,
});

使用ctrl + enter启动它,您发送投票请求。 现在把它放在for循环中,你就有很多票。

在全球范围内,请记住,您从不在客户端清理用户输入。