获取jquery ajax以使用codeigniter

时间:2011-07-17 20:19:25

标签: php codeigniter jquery

我试图通过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错误

3 个答案:

答案 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()