Javascript 当我传递静态数据时,它将成功存储数据。当我传递动态数据时,它将不存储数据。如何传递动态数据

Javascript 当我传递静态数据时,它将成功存储数据。当我传递动态数据时,它将不存储数据。如何传递动态数据,javascript,ajax,codeigniter,Javascript,Ajax,Codeigniter,当我通过静态测试时,它将成功地存储在数据库中。当我传递动态数据时,它不会存储在数据库中。在我的视图中,表单id是signupform,它有5个字段 这是我的.js文件 $(document).on("submit","#signupform",function(e){ e.preventDefault(); //var view_id=$("#id_hid").val(); //alert(view_id); console.log($('#signupfor

当我通过静态测试时,它将成功地存储在数据库中。当我传递动态数据时,它不会存储在数据库中。在我的视图中,表单id是signupform,它有5个字段

这是我的.js文件

$(document).on("submit","#signupform",function(e){ 
    e.preventDefault();

    //var view_id=$("#id_hid").val();
    //alert(view_id);
    console.log($('#signupform').serialize());
    var data = {'username' : 'username' , 'password' : 'password' , 'email' : 'email' , 'mobileno' : 'mobileno' , 'address' : 'address' };
    data = $('#signupform').serialize() + '&' + $.param(data);

    $.ajax({
        type:"POST",
        data:data,//$('#signupform').serialize(),
        dataType: "JSON",
        url:"../welcome/add",       
        success:function(data){
            //var json=$.parseJSON(data);
            //$('#signupform').html(response);
            alert(data);
        }
    });
});
**这是我的控制器文件**

public function add(){
    $data=array();
    $postData=array();

    //prepare post data
    $postData = array(
        'username' => $this->input->post('username'),
        'password' => $this->input->post('password'),
        'email' => $this->input->post('email'),
        'mobileno' => $this->input->post('mobileno'),
        'address' => $this->input->post('address')
    );  


    //print_r($postData);

    //insert post data

    $insert = $this->home_model->insert_form($postData);
    $data['msg']= "data insert successfully";
    echo json_encode($data['msg']);
}
这是我的模型文件

function insert_form($data){

    $insert=$this->db->insert('emp',$data);
    if($insert){
        return $this->db->insert_id();
    } else {
        return false;
    }
    echo  json_encode($data);
}

如果要发布字符串数据,可以删除
dataType:“JSON”

或者你可以用这个方法

$(document).on('submit', '#signupform', function (e) {
  e.preventDefault();
  var data = {username: 'username', password: 'password', email: 'email', mobileno: 'mobileno', address: 'address'};
  data = Object.assign({}, $('#signupform').serializeArray()[0], data);
  console.log(data);

  $.post('your backend url', data, function (result) {
    console.log(result);
  })
})

如果要发布字符串数据,可以删除
dataType:“JSON”

或者你可以用这个方法

$(document).on('submit', '#signupform', function (e) {
  e.preventDefault();
  var data = {username: 'username', password: 'password', email: 'email', mobileno: 'mobileno', address: 'address'};
  data = Object.assign({}, $('#signupform').serializeArray()[0], data);
  console.log(data);

  $.post('your backend url', data, function (result) {
    console.log(result);
  })
})

您不需要定义
数据
对象。
serialize()。但是,因为您正在撰写文章,所以应该使用
serializeArray()
serialize()
面向GET请求

$(document).on("submit","#signupform",function(e){ 
    var data;
    e.preventDefault();
    data = $('#signupform').serializeArray();

    $.ajax({
        type:"POST",
        data:data,
        dataType: "JSON",
        url:"../welcome/add",       
        success:function(data){
            //data is an object. If you want the text returned use data.msg
            //$('#some-message-div').text(data.msg);
            console.log(data); //an object with one property - 'msg'
        }
    });
});
控制方法可以简化很多。由于字段名与表列名完全匹配,因此无需构建
$postData
数组。发布的数据已经有了这种精确的结构
$this->input->post()
将返回您需要的内容

public function add()
{
    //insert post data
    if($this->home_model->insert_form($this->input->post()))
    {
        $data['msg'] = "data insert successfully";
    }
    else
    {
        $data['msg'] = "insert failed";
    }
    echo json_encode($data);
}
模型可以更干净

function insert_form($data)
{
    if($this->db->insert('emp', $data))
    {
        return $this->db->insert_id();
    }
    //don't need else when the if condition calls return
    return false;
}

echo json\u encode($data)没有任何作用。该行从未执行的编码方式——if和else块都返回。即使它确实执行了,对于模型来说也是错误的。

您不需要定义
数据对象。
serialize()。但是,因为您正在撰写文章,所以应该使用
serializeArray()
serialize()
面向GET请求

$(document).on("submit","#signupform",function(e){ 
    var data;
    e.preventDefault();
    data = $('#signupform').serializeArray();

    $.ajax({
        type:"POST",
        data:data,
        dataType: "JSON",
        url:"../welcome/add",       
        success:function(data){
            //data is an object. If you want the text returned use data.msg
            //$('#some-message-div').text(data.msg);
            console.log(data); //an object with one property - 'msg'
        }
    });
});
控制方法可以简化很多。由于字段名与表列名完全匹配,因此无需构建
$postData
数组。发布的数据已经有了这种精确的结构
$this->input->post()
将返回您需要的内容

public function add()
{
    //insert post data
    if($this->home_model->insert_form($this->input->post()))
    {
        $data['msg'] = "data insert successfully";
    }
    else
    {
        $data['msg'] = "insert failed";
    }
    echo json_encode($data);
}
模型可以更干净

function insert_form($data)
{
    if($this->db->insert('emp', $data))
    {
        return $this->db->insert_id();
    }
    //don't need else when the if condition calls return
    return false;
}

echo json\u encode($data)没有任何作用。该行从未执行的编码方式——if和else块都返回。即使它确实执行了,对于模型来说也是错误的。

对于此表单数据,我不存储表单数据。只存储文件名。对于此表单数据,我不存储表单数据。只存储文件名。