代码之家  ›  专栏  ›  技术社区  ›  Kavin-K

获取内部服务器错误(500)-CodeIgniter

  •  0
  • Kavin-K  · 技术社区  · 7 年前

    在我的CodeIgniter项目中,我需要将数据插入到db表中

    内部服务器错误(500)

    使用Ajax将数据添加到数据库的问题。

    我的Ajax代码如下,

    $("#rsvp_form").validate({
        rules: {
            uname: {
                required: true,
                minlength: 8
            },
            uemail: "required",
            umessage: {
                required: true,
                maxlength: 100
            }
        },
        messages: {
            uname: {
                required: "Please enter your name",
                minlength: jQuery.validator.format("At least 8 characters required!")
            },
            uemail: "Please enter your email",
            umessage: {
                maxlength: jQuery.validator.format("Please enter no more than 100 characters!")
            },
        },
        // ajax request
        submitHandler: function (form) {
    
            var formData = {
                'user_name': $('input[name=uname]').val(),
                'user_email': $('input[name=uemail]').val(),
                'user_wish': $('input[name=umessage]').val()
            };
    
            // loader
            $(".loader").show();
    
            // ajax request
            $.ajax({
                type: "POST",
                url: "<?php echo base_url(); ?>index.php/Welcome/create_wish",
                data: formData,
                dataType: "json",
                success: function (data) {
    
                    // if send data successfull
                    if (data.status === 'success') {
    
                        $(".loader").hide();
                        $(form).fadeOut("slow");
                        setTimeout(function () {
                            $(".form-success").show("slow");
                        }, 300);
    
                        // if send data something wrong 
                    } else if (data.status === 'error') {
    
                        $(".loader").hide();
                        $(form).fadeOut("slow");
                        setTimeout(function () {
                            $(".form-error").show("slow");
                        }, 300);
                    }
    
                }
            });
            return false;
        }
    
    });
    

    我的 Welcome 控制器功能如下:,

    public function create_wish() {
        $this->load->model("model_wishes");
        $data = array(
        'user_name' => $this->input->post('uname'),
        'user_email' => $this->input->post('uemail'),
        'user_wish' => $this->input->post('umessage')
        );
        $this->model_wishes->createWish($data);
    }
    

    model_wishes 模特来了,

    function createWish($data) {
        $this->db->insert("wishes", $data);
    }
    

    welcome_message 视图是,

    <form id="rsvp_form" action="">
    <div class="row">
        <div class="form-group col-md-6">
            <label for="post-name">Name</label>
            <input autocomplete='name' type="text" class="form-control" id="uname" name="uname" required />
        </div>
        <div class="form-group col-md-6">
            <label for="post-email">Email</label>
            <input autocomplete='email' type="email" class="form-control" id="uemail" name="uemail" required/>
        </div>
    </div>
    <div class="row">
        <div class="form-group col-md-12 margin-b-2">
            <label for="post-message">Message</label>
            <textarea class="form-control" id="umessage" rows="5" name="umessage"></textarea>
        </div>
    </div>
    <div class="row">
        <div class="form-group col-md-12 text-left mb-0">
            <button id="btn-create" type="submit" class="button-medium btn btn-default fill-btn">Post Wish</button>
        </div>
    </div>
    

    什么时候? Post Wish 单击按钮获取 XHR failed loading: POST 一个错误

    POST http://localhost/CodeIgniterProj/index.php/Welcome/create_wish 500 (Internal Server Error)
    

    请让我知道究竟是什么导致了内部服务器错误,以及如何解决此问题。

    3 回复  |  直到 7 年前
        1
  •  0
  •   Pradeep    7 年前

    希望这对你有帮助:

    你的 submitHandler 代码应该如下:

    submitHandler: function (form) 
    {
      var formData = $(form).serialize();
      $(".loader").show();
      console.log(formData);
      $.ajax({
        type: "POST",
        url: "<?=site_url('Welcome/create_wish'); ?>",
        data: formData,
        dataType: "json",
        success: function (data) {
          alert(data);
        }
      });
    }
    

    还有你的控制器 create_wish 应该是这样的:

    public function create_wish() 
    {
        $this->load->model("model_wishes");
        $user_name = $this->input->post('uname'));
        $user_email = $this->input->post('uemail');
        $user_wish = $this->input->post('umessage');
    
        $data = array(
          'user_name' => $user_name,
          'user_email' => $user_email,
          'user_wish' => $user_wish
        );
        $this->model_wishes->createWish($data);
        $response = array('status' => 'success');
        echo json_encode($response);
    }
    
        2
  •  3
  •   Aman Kumar    7 年前

    您使用了错误的post输入,请检查下面更新的代码

    public function create_wish() {
        $this->load->model("model_wishes");
        $data = array(
        'user_name' => $this->input->post('user_name'),
        'user_email' => $this->input->post('user_email'),
        'user_wish' => $this->input->post('user_wish')
        );
        $this->model_wishes->createWish($data);
    }
    
        3
  •  0
  •   Aman Kumar    7 年前

    而不是 基本url 使用 网站url

    site_url('Welcome/create_wish')