【问题标题】:Codeigniter CheckboxCodeigniter 复选框
【发布时间】:2019-02-21 06:33:59
【问题描述】:

你们能告诉我我在代码中做错了什么吗?我试图将这些复选框中的数据发布到数据库

这里是view.php

(more code)
<div class="form-group">
          <label class="control-label col-md-3">Infection</label>
          <div class="col-md-9">
            <input type="checkbox" name="infectionType[]" value="vap"> VAP
            <input type="checkbox" name="infectionType[]" value="hap"> HAP
            <input type="checkbox" name="infectionType[]" value="isk"> ISK
            <input type="checkbox" name="infectionType[]" value="iad"> IAD
          </div>
        </div>

这是我的controller.php

public function insert_surveilance(){
    $data=array(
        (more code)
        'vap' => $this->input->post('vap'),
        'hap' => $this->input->post('hap'),
        'isk' => $this->input->post('isk'),
        'iad' => $this->input->post('iad'),
        (more code)
    );
    $data[]=
        $insert = $this->surveilance_model->insert_surveilance($data);
        echo json_encode(array("status"=>TRUE));
}

那么这是我的model.php

public function insert_surveilance($data){
    $this->db->insert($this->table, $data);
    return $this->db->insert_id();
}

这是保存功能 ... 函数保存(){

    var url;
    if(save_method == 'add'){
      url="<?php echo site_url('surveilance/insert_surveilance')?>";
    } else {
      url="<?php echo site_url('surveilance/edit_surveilance')?>";
    }
    $.ajax({
        url : url,
        type: "POST",
        data: $('#form').serialize(),
        dataType: "JSON",
        success: function(data)
        {
           //if success close modal and reload ajax table
           $('#modal_form').modal('hide');
          location.reload();// for reload a page
        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            alert('Failed adding data');
        }
    });
  }

【问题讨论】:

  • 你有没有在XHR下检查你的url是否调用成功。
  • 调用成功,但值为null。发生数据库错误 错误号:1048 列“....”不能为空 INSERT INTO surveilance (...,vap,hap,isk,iad,...) VALUES ( NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL) 文件名:D:/xampp/htdocs/ppi-daily/system /database/DB_driver.php 行号:691
  • 但是当我将类型从复选框更改为文本时,它确实保存到了数据库中
  • 你在控制器上使用的变量$data[]=$insert =你可以删除它,因为你没有使用它。
  • 我现在看到了。您必须使用 'vap' =&gt; $this-&gt;input-&gt;post('infectiontype[]') 而不是 'vap' =&gt; $this-&gt;input-&gt;post('vap')

标签: database checkbox insert codeigniter-3


【解决方案1】:

首先在你的控制器中var_dump($this-&gt;input-&gt;post()),如果它显示发布数据然后尝试替换下面的代码。

public function insert_surveilance(){
    $request_params = $this->input->post('infectionType');
    $data=array(
        (more code)
        'vap' => $request_params[0],
        'hap' => $request_params[1],
        'isk' => $request_params[2],
        'iad' => $request_params[3],
        (more code)
    );
    $data[]=
        $insert = $this->surveilance_model->insert_surveilance($data);
        echo json_encode(array("status"=>TRUE));
}

【讨论】:

  • 我做了 var_dump,它返回 = array(0) { }。这是什么意思?控制器无法识别表单,是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 2013-01-05
  • 2015-07-13
  • 2013-09-30
  • 1970-01-01
相关资源
最近更新 更多