0
尝试修改RateIT星级评分系统以在SQL db中存储投票。用户输入脚本后,mySQL会记录数据。但是我无法从SQL中收到更新的平均值。使用AJAX GET或POST
如何运行查询并将其发送回AJAX并显示它。应该使用POST还是GET?
我非常困惑,为此挣扎了好几天。我在这里和RateIT一起看过例子和以前的问题,但似乎没有任何合适的。
代码:想结果在ID显示= “响应”
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;
?>
2个问题?它是否将数据添加到收视率? storyidr的数据类型是什么? –
错误,所以它看起来像你的意思是你的rate.php返回新的平均?你为什么不那样做呢? – ysth
它将值添加到SQL表中,是的。数据是两件事。 1.代表评分(1-5)的#。 2.被评价商品的ID号,我在上面的代码中标注了“商品ID”。我只是不知道如何显示来自SQL的新值。 – rhill45