【问题标题】:Getting jquery ajax to work with codeigniter让 jquery ajax 与 codeigniter 一起工作
【发布时间】:2011-07-17 20:19:25
【问题描述】:

我正在尝试通过 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 错误

【问题讨论】:

标签: php codeigniter jquery


【解决方案1】:

快速看一下,好像你提交给:

管理员/部分/添加

而不是您的方法名称,即sections_add:

管理员/sections_add

但这将返回 404 而不是 500。如果您的方法名称正确,请尝试将您的数据传递为:

var data = {
       name: $('#name').val(),
       slug: $('#slug').val(),
       des: $('#description').val()
    }

【讨论】:

  • 我的路由规则将 admin/sections/add 解释为 admin/admin/section_add,因为控制器位于名为 admin 的子文件夹中
【解决方案2】:

您是否启用了 CSRF 保护?如果是这样,您必须将 csrf_token 添加到 POST 中。

如果您使用 form_helper 中的 form_open 创建表单,请查找 csrf_token_name 隐藏变量。最终,您可以通过http://api.jquery.com/serialize/获取所有表单数据

【讨论】:

    【解决方案3】:

    可能是我遗漏了一些东西,但我不明白你是如何回答结果的。无视图,无回显,请尝试添加...

                $data['success'] = $this->section_model->add($options)?1:0;
                echo json_encode($data);
    

    在section_add()中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多