duanfu7840 2016-08-21 14:09
浏览 44
已采纳

如何使用jquery,ajax和codeigniter创建类似按钮

View

I have tried to create like button here. And everytime i click like button it increases by 1. Here how do i put value from database using foreach() loop and feeding it in jquery

<script type="text/javascript">
$(document).ready(function(){
  $("#like").click(function() {
    var id='1069347886434951';//this is not artist who likes
    var creation_id= 1;
  $.ajax({
    type: "post",
    url: "<?php echo base_url(); ?>creations/like_creation",
    data:'id='+id + '&creation_id=' +creation_id,//after its split, the split function gives an array
    success: function(response){        
      try{
        if(response=='true'){ 
          var newValue = parseInt($("#like").text()) + 1;            
          $("#"+voteId+'_result').html(newValue);// adds the value to no of like on the client side
        }else{
          alert('Sorry Unable to update..');
        }
      }catch(e) {   
        alert('Exception while request..');
      }   
    },
    error: function(){            
      alert('Error while request..');
    }
   });
    });
  });
  </script>

Controller The controller inserts the value in database. If you put the value using postman it will return true using json upto ajax. I have tried it in postman and it does.

public function like_creation(){
    //$artist_id=$this->session->userdata('user_id');
    $artist_id=$this->input->post('id');

    //bring creation id from the database when fed using foreach loop
    $creation_id=$this->input->post('creation_id');
    //$up_like1 =0;
    $data1=array(
    'id'=> $this->input->post('id'),//bring it from artist_infors
    'creation_id'=>  $this->input->post('creation_id'),
    'artist_who_likes'=> $artist_id ,

    );

    $query=$this->hbmodel->insert_like($data1);     


    $status= "true";

    echo $status;
}

Model

 public function no_likes($artist_id, $creation_id)
{
    $sql="SELECT count(like_id) as num from likes as l where id='$artist_id'  and creation_id= $creation_id";
    //artist id has to determine whether it is user himself or the one whom       he/she tries to follow
    $query=$this->db->query($sql);
    return $query->result();
}

MySQL qUERY

 CREATE TABLE IF NOT EXISTS `likes` (
`like_id` int(11) NOT NULL AUTO_INCREMENT,
`id` varchar(500) COLLATE utf16_bin DEFAULT NULL,//the artist id whose creation is fed
`creation_id` int(11) DEFAULT NULL,
`artist_who_likes` varchar(500) COLLATE utf16_bin DEFAULT NULL,
PRIMARY KEY (`like_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf16 COLLATE=utf16_bin AUTO_INCREMENT=29 ;
  • 写回答

1条回答 默认 最新

  • duangangpin078794 2016-08-21 18:27
    关注
    if($.trim(response) === 'true')
    

    the problem is in the codition of success. the value comes from response but not compared properly with a string

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突