尝试修改RateIT星级评分系统以在SQL db中存储投票。用户输入后脚本运行,mySQL记录数据。但是,我无法从SQL接收更新的平均值。
如何运行查询并将其发送回AJAX并显示它。应该使用POST还是GET?
我非常困惑,几天挣扎着。我已经在这里查看了示例和之前的问题以及RateIT,但似乎没有任何内容。
代码:希望结果显示在id =“response”
中HTML和JS
<div id="products">
<div>
<ul id="response">
</ul>
</div>
</div>
<script type ="text/javascript">
$('#products .rateit').bind('rated reset', function (e) {
var ri = $(this);
var value = ri.rateit('value');
var productID = ri.data('productid');
ri.rateit('readonly', true);
$.ajax({
url: 'rate.php',
data: { productID: productID, value: value },
type: 'POST',
success: function (data) {
$('#response').append('<li>' + data + '</li>');
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
});
</script>
PHP
<?PHP
$con=mysqli_connect ("host","user","pass#","dbname");
mysqli_query($con,"INSERT INTO ratings (storyidr, rank, entry_date) VALUES ('$_POST[productID]','$_POST[value]',now())");
mysqli_close($con);
exit;
?>
提前谢谢!
编辑的PHP代码:
$result=mysqli_query($con,"INSERT INTO ratings (storyidr, rank, entry_date) VALUES ('$_POST[storyidr]','$_POST[value]',now()) THEN SELECT AVG(rank) AS avrank from ratings WHERE storyidr=$storyidr;" );
$avgrate = $data['avrank'];
if(!$result)
{
$arr = array ('status'=>'fail');
echo json_encode($arr);
}
else
{
$arr = array ($avgrate);
echo json_encode($arr);
}
exit;
?>
答案 0 :(得分:1)
您可以使用JSON格式使用 json_encode
发送回结果$result=mysqli_query($con,"INSERT INTO ratings (storyidr, rank, entry_date) VALUES ('$_POST[productID]','$_POST[value]',now())");
if(!$result)
{
$arr = array ('status'=>'fail');
echo json_encode($arr);
}
else
{
$arr = array ('status'=>'success');
echo json_encode($arr);
}
在成功回调中,你可以使用object.status(在你的情况下是data.status)获得状态