我试图通过ajax将记录添加到我的数据库,但是当我尝试我的代码时,我得到了 500 HTTP错误代码; 这是我在控制器中提交的功能
function sections_add() {
$this->load->model('section_model');
$name = $_POST['name'];
$slug = $_POST['slug'];
$sec = $_POST['description'];
$options = array(
"description"=>$sec,
"slug"=>$slug,
"category"=>$name
);
$this->section_model->add($options);
}
这是模型中添加记录的功能
function add($options = array()) {
$this->db->insert('sections',$options);
if($this->db->affected_rows() > 0) {
return true;
}
return false;
}
这是我的jquery代码 注意:base_url定义为我的基本URL
$(function () {
$('#save_btn').click(function(e) {
var name = $('#name').val();
var slug = $('#slug').val();
var des = $('#description').val();
var data = "name="+name+"slug="+slug+"description="+des;
var url = base_url+"admin/sections/add";
$.ajax({
url:url,
type:'post',
cache:false,
data:data,
success:function() {
alert('Success');
}
});
e.preventDefault()
});
});
请该怎么办,摆脱http 500错误
答案 0 :(得分:0)
快速查看此内容,看起来就像是提交给:
管理员/分段/添加
而不是您的方法名称sections_add:
admin / sections_add
但这将返回404而不是500.如果您的方法名称正确,请尝试将数据传递为:
var data = {
name: $('#name').val(),
slug: $('#slug').val(),
des: $('#description').val()
}
答案 1 :(得分:0)
您是否启用了CSRF保护?如果是这样,您必须将csrf_token添加到POST中。
如果您使用form_helper中的form_open创建表单,请查找csrf_token_name隐藏变量。最后,您可以使用http://api.jquery.com/serialize/
获取所有表单数据答案 2 :(得分:0)
可能是我错过了什么,但我不知道你是如何回答结果的。没有观点,没有回音,请尝试添加......
$data['success'] = $this->section_model->add($options)?1:0;
echo json_encode($data);
在section_add()
中