加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 无法使用ajax将数据插入数据库

发布时间:2020-12-13 17:50:20 所属栏目:PHP教程 来源:网络整理
导读:我是 jquery和ajax的新手,现在我很难在使用ajax和codeigniter将数据插入数据库时??找到解决这个问题的方法. 所有错误都没问题,但是当表单上没有错误时,我收到数据库错误,所有输入都变为NULL. 调节器 public function add () { $this-load-model('user_model'
我是 jquery和ajax的新手,现在我很难在使用ajax和codeigniter将数据插入数据库时??找到解决这个问题的方法.
所有错误都没问题,但是当表单上没有错误时,我收到数据库错误,所有输入都变为NULL.

调节器

public function add () {

 $this->load->model('user_model');
    $data => array (
      'first_name'      => $this->input->post['first_name'],'last_name'       => $this->input->post['last_name'],'active'          => $this->input->post['active'],'date_registered' => date('Y/m/d h:i:sa')
  );

  // assume validation rules are already set.
  if ($this->form_validation->run() == FALSE) {
   $result['message'] = validation_errors();
  } else {
   $result['data'] = $this->user_model->save($data);
  } 
 }

Ajax 1:

$(document).ready(function() { 
  $('#create-user').click( function(e) {
    var is_valid  = false;
    var form_id   = '#'+ $(this).parents('form').attr('id');
    // Validate required fields are not blank
    // do a js validation?

    // Apply action
    if(is_valid) {
      var add_result = do_submit(form_id);
    } else {
      $('#error-msg').html(result.message); // if form is not valid
    }
  });
});

Ajax 2:

function do_submit(form_id) {
  var url         = $(form_id).attr("action");
  var ajax_result = false;
  var formData    = {};

  // Submit form using ajax
  ajax_result = $.ajax({
    type: "POST",url: url,data: $(form_id).serialize(),dataType: 'json',success: function(result) {
      // return result; 
      //  do something
      console.log(result);
      if (result.data) {
        make_alert();
      }
    },error: function(textStatus) {
      /* Note: decide how all errors should be shown. */
      swal({
        title: "Error!",text: "Oops,something went wrong. Check fields and try again.",type: "error"
      });
    }
  });

  return ajax_result;
} // End do_submit()

解决方法

要在codeigniter中获取发布数据,我们使用

$this->input->post('field_name');

所以你需要将所有帖子[‘field_name’]更改为post(‘field_name’)

你的最终代码是

$this->load->model('user_model');
        $data => array (
          'first_name'      => $this->input->post('first_name'),'last_name'       => $this->input->post('last_name'),'active'          => $this->input->post('active'),'date_registered' => date('Y/m/d h:i:sa')
      );

阅读https://www.codeigniter.com/user_guide/libraries/input.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读