【发布时间】: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' => $this->input->post('infectiontype[]')而不是'vap' => $this->input->post('vap')
标签: database checkbox insert codeigniter-3