使用AJAX获取或POST

时间:2014-03-30 21:25:18

标签: javascript php jquery mysql ajax

尝试修改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;
?>

1 个答案:

答案 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)获得状态