Jquery从数据库返回值

时间:2015-03-10 21:55:13

标签: php jquery ajax codeigniter

我有一个允许用户喜欢(+1)记录的脚本。一切正常,但我不知道如何在按下按钮后显示DB中的新值(不刷新)。我使用的是codeigniter,而且我对jquery并不是很了解。

我的剧本:

    <script type="text/javascript">
  var base_url = '<?php echo base_url();?>';
 jQuery(document).ready(function(){
    $('.like').click(function() {
    var id = $(this).attr("uid");
    $.ajax({
            url: base_url+'quotes/quotes_rating',
            type: 'GET',
            data: {'id': id}
     }); 
        });  

});
</script>

我的控制器:

public function quotes_rating() {
    $id = $this->input->get('id');
    $this->quotes_model->write_likes($id);
 }

模型函数write_likes()将记录保存到DB中。 这是我的模型函数,显示有多少喜欢有记录:

public function all_likes($id)
{
 $sql = "select COALESCE(sum(like),0) as likes from rating WHERE record_id = '{$id}'";
  $likes = $this->db->query($sql)->row_array();

  return $allikes['likes'];
}

我必须在此代码中更改什么?
当用户点击.like按钮时,他会看到数据库中的新值。谢谢!!!

2 个答案:

答案 0 :(得分:1)

jQuery(document).ready(function(){
    $('.like').click(function() {
       var $this = $(this);
       $.ajax({
            url: base_url+'quotes/quotes_rating',
            type: 'GET',
            data: {'id': id},
            dataType: 'html',
            success: function(d){
              $this.html(d); //will set html of clicked link
            }, error: function(){ //code for error }
     }); 
});

答案 1 :(得分:0)

<script type="text/javascript">
var base_url = '<?php echo base_url();?>';
jQuery(document).ready(function(){
    $('.like').click(function() {
        var id = $(this).attr("uid");
        $.ajax({
            url: base_url+'quotes/quotes_rating',
            type: 'GET',
            data: {'id': id}
            success: function(data) {
                $("someelementyouwanttoseelikesin").html(data);
                //data will contain anything you echo in your php script!
            }
        });
    });  
});
</script>