2

我正在尝试在网站中实施比率。除了一个小问题外,我已经让插件正常工作了。我无法将评分值存储到我的数据库中,因为我无法将分数变量传递给我的 php 脚本。这是我的代码:

<div id="star" onclick="javascript:rateMe()"></div><br /><br />
<div id="hint"></div><br />
<script type="text/javascript" src="scripts/js/jquery.raty.min.js"></script>
<script type="text/javascript">

$('#star').raty({
 half  : true,
 number: 10,
 score : 5,
 cancel     : true,
 cancelHint : 'none',
 target     : '#hint',
 targetKeep   : true
});

</script>

我将数据获取到我的数据库的 post 函数是:

function rateMe(score) {
                $.post('scripts/php/rater.php',{score:score, userid:<?php echo $memid; ?> },function(data){alert(data+' Score = '+score);
                });         
} 

我的 PHP 脚本很好,除了分数本身之外,数据正在发布到它!在上面的代码中,我遗漏了一些东西。我的警报正确返回了所有变量,除了那些引用分数的变量,它们为空,我的警报的最后部分返回为“分数 = 未定义”。我曾尝试使用 onclick="javascript:rateMe(score)" 但这甚至无法发布数据,并且我没有收到任何警报。

我想知道我做错了什么。我试图在函数之外声明分数变量,我已经向函数添加了一个点击事件,我已经尝试按照文档中的方式重命名分数变量,我已经尝试将函数放在 $(document).ready 函数中() {...} 标签,以及代码的比率部分......无济于事。任何帮助将不胜感激......我是 javascript 的新手,我正在搜索我的食谱,但找不到答案。如果有人可以帮助我理解为什么 score 变量没有被传递给 php 脚本,我将永远感激不尽。谢谢 :)

4

1 回答 1

7

尝试将点击处理程序放在比率对象的选项中:

<div id="star"></div><br /><br />
<div id="hint"></div><br />
<script src="lib/jquery-1.7.2.js" type="text/javascript"></script>
<script type="text/javascript" src="lib/raty.js"></script>
<script type="text/javascript">

    $('#star').raty({
        half  : true,
        number: 10,
        score : 5,
        cancel     : true,
        cancelHint : 'none',
        target     : '#hint',
        targetKeep   : true,
        click: function(score, evt) {
            $.post('raty.php',{score:score, userid:0 },
                    function(data){
                        alert(data+' Score = '+score);
            });
        }
    });
</script>
于 2012-09-28T06:14:53.203 回答