我正在尝试将raty实施到一个网站中。我有一个插件除了一个小问题。我无法将评级值存储到我的数据库中,因为我无法将得分变量传递给我的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脚本很好,除了分数本身之外,数据还会发布到它!在上面代码的某处,我遗漏了一些东西。我的警报正确地返回所有变量,除了那些引用得分的变量,它们都是null,我的警报的最后部分返回为“Score = Undefined”。我尝试过使用onclick =“javascript:rateMe(得分)”,但这甚至都无法发布数据,我也没有得到警报。
我想知道我做错了什么。我试图在函数之外声明得分变量,我已经在函数中添加了一个click事件,我已经尝试重命名得分变量,如文档中所示,我已经尝试将函数放在$(document).ready函数中(){...}标签,以及代码的raty部分......无济于事。任何帮助将不胜感激...我是一个新手与JavaScript,我正在搜索我的食谱,但找不到答案。如果有人能帮助我理解为什么得分变量没有被传递给php脚本,我将永远感激不尽。谢谢:))
答案 0 :(得分:7)
尝试将click处理程序放在raty对象的选项中:
<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>