我尝试使用codeigniter和ajax将多个数组插入数据库。单击提交后,数据库插入到mysql但所有值都为空。我错过了什么?
我的观点:
<input type="hidden" name="iduser[]" id="iduser[]" value="<?php echo $rowmyuser->iduser; ?>"/>
<input type="hidden" name="idproduk[]" id="idproduk[]" value="<?php echo $rowproduk->idproduct; ?>"/>
<input type="text" class="form-control input-sm" name="settarget[]" id="settarget[]"/>
保存
我的控制器:
public function inserttarget()
{
$this->target_m->inserttarget_m();
}
我的模特:
function inserttarget_m() {
$iduser = $this->input->post("iduser");
$idproduk = $this->input->post("idproduk");
$settarget = $this->input->post("settarget");
$temp = count($this->input->post("iduser"));
$datatarget = array();
for($i=0; $i < 3; $i++)
{
$datatarget[]=array(
"iduser"=>$iduser[$i],
"idproduct"=>$idproduk[$i],
"target"=>$settarget[$i],
);
}
$this->db->insert_batch("tbl_targetsales",$datatarget);
}
Ajax代码:
function insert_target()
{
var DataString=$("#frm_target").serialize();
document.getElementById("save_target").innerHTML = "<i class='fa fa-cog fa-spin fa-lg fa-fw'></i> Saving...";
$.ajax({
type: 'POST',
url: '<?php echo base_url();?>target/inserttarget',
data: DataString,
success: function (data) {
//jQuery("#attendence_report_holder").html(response);
swal({
text: 'success'
});
$("#frm_target")[0].reset();
document.getElementById("save_target").innerHTML = "<i class='fa fa-save'> </i>Save";
window.location='<?php echo base_url(); ?>target';
},
error:function(data){
swal({
text: 'error',
});
document.getElementById("save_target").innerHTML = "<i class='fa fa-save'> </i>Save";
}
});
}
我需要建议,代码中有什么问题。提前致谢
答案 0 :(得分:0)
首先你输入错误输入名称为
的html中的输入iduser[]
idproduk[]
settarget[]
并在您的模型中调用,并在您插入的数组中调用您调用的不同变量
iduser
idproduct
target
替换所有你使用的(使用表单和变量名称中的正确名称)
function inserttarget_m() {
$iduser = $this->input->post("iduser");
$idproduct = $this->input->post("idproduk");
$target = $this->input->post("settarget");
$temp = count($iduser);
$datatarget = array();
for($i=0; $i < $temp; $i++){
$datatarget[] = array(
"iduser" => $iduser[$i],
"idproduct" => $idproduct[$i],
"target" => $target[$i],
);
}
$this->db->insert_batch("tbl_targetsales", $datatarget);
}