我发送一个ajax请求它也返回成功消息,但数据没有插入。基本上它是一个链接,当我将点击链接然后ajax将向控制器发送请求,并在数据库中它将值与之前的值增加1.我已经尝试通过很多次但是失败了。这是一个codignator项目。如果你能给予帮助,我们将不胜感激。
Ajax File :
$(document).ready(function(){
$("#like").click(function(e){
e.preventDefault(); // <------this will restrict the page refresh
var post_id = $(this).prop('rel');
$.ajax({
url: "http://localhost/ci_website/index.php/site/add_like",
type: 'POST',
data : post_id,
dataType: 'json',
success: function(res) {
if (res.success) {
alert(res.msg);
} else {
alert(res.msg);
}
}
});
return false;
});
});
View File :
<a id="like" class="like_btn" rel="<?php echo $blog['blog_id'];?>" href="<?php echo site_url('site/add_like') . '/' . $blog['blog_id'];?>">Like</a>
public function add_like()
{
header('Content-Type: application/json');
if ($this->input->is_ajax_request()) {
$post_id = $this->uri->segment(3);
$this->db->set('post_like', '`post_like` + 1', FALSE);
$this->db->where('blog_id', $post_id);
$add_post_view = $this->db->update('wb_blog');
if ($add_post_view) {
die(json_encode(array('success' => true, 'msg' => 'Your Like has been sent successfully.')));
} else die(json_encode(array('success' => false, 'msg' => 'Something bad happened!!! Please, try again.')));
}
}
答案 0 :(得分:0)
<强>更新强>
检查
if ($this->db->_error_message()) {
return FALSE; // Or do whatever you gotta do here to raise an error
} else {
return $this->db->affected_rows();
}`
答案 1 :(得分:0)
您没有调用该函数,您只是加载该函数,并且由于文件的加载成功,它返回true。 定义函数后,尝试调用它,看看它是否有效。
答案 2 :(得分:0)
url: "http://localhost/ci_website/index.php/site/add_like/"+post_id,
我在链接后添加了'post_id'。这很好。我没有定义表格行受影响的确切ID。