使用codeigniter插入数组

时间:2017-11-15 14:32:33

标签: arrays codeigniter post

我尝试使用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'>&nbsp;&nbsp;</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'>&nbsp;&nbsp;</i>Save";
    }
  });
}

我需要建议,代码中有什么问题。提前致谢

1 个答案:

答案 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);
}