每次我插入新数据时都会说post_id
不能是NULL
但是当我检查phpmyadmin时。存储正确的ID。
我使用ajax将id's
从视图发送到控制器。我已经尝试alert(id)
来查看id
是否真的被选中并且选中了它,因此在jquery部分中没有任何问题。
它按我想要的方式工作,它只是存在这个错误并没有真正停止插入,我可以隐藏错误但我想修复它而不使用它。
jquery的
var post_id = $(this).closest('.portlet').find('.form').find('.postid').val();
var comment = $(this).closest('.comments').find('textarea').val();
alert("This is the post id "+post_id+"\nThis is the comment "+comment);
$(this).closest('.comments').submit();
$.ajax({
type: "POST",
url: BASE_URL+'classes/addcomment',
dataType: 'json',
data: {post_id: post_id, comment: comment},
async: false
});
在警报中,我可以看到ID和评论,它们是正确的。因此,我非常确定访问时没有问题。
控制器
public function addcomment(){
$data = array(
'user_id' => $this->user_id,
'post_id' => $this->input->post('post_id'),
'content' => $this->input->post('comment')
);
$this->Comment_model->addcomment($data);
redirect('/classes/ICT141');
}
错误
Error Number: 1048
Column 'post_id' cannot be null
INSERT INTO `post_comments` (`user_id`, `post_id`, `content`) VALUES ('4', NULL, NULL)
Line Number: 28
模型中的第28行只是
public function addcomment($data){
$this->db->insert('post_comments', $data);
}
答案 0 :(得分:0)
尝试将其更改为:
var post_id = $(this).closest('.portlet').find('.form').find('.postid').val();
var comment = $(this).closest('.comments').find('textarea').val();
alert("This is the post id "+post_id+"\nThis is the comment "+comment);
$(this).closest('.comments').submit();
$.ajax({
type: "POST",
url: BASE_URL+'classes/addcomment',
dataType: 'json',
data: {"post_id" : post_id, "comment" : comment},
async: false
});
答案 1 :(得分:0)
尝试设置post_id的默认值