Codeigniter-使用Select2更新多行 [英] Codeigniter - Update Multiple Row With Select2

查看:99
本文介绍了Codeigniter-使用Select2更新多行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在输入2个值 collecting_id 属性和2个值 nama_driver 属性时,在数据库中成功输入2行

When entering 2 values collecting_id attribute and 2 values nama_driver attribute, and in database successfully input 2 rows,

输入-> 结果

2个值 collecting_id 和1个值 nama_driver ,然后仅将1行输入数据库..

but if inputting 2 values collecting_id and 1 value nama_driver, then only 1 row entered into database ..

输入-> 结果

如果我输入2个或更多collection_id和1个nama_driver,则数据库中只有1行。我想要数据库中具有相同nama_driver值的2行或更多行

if I input 2 or more collecting_id and 1 nama_driver, only 1 row in database. I want 2 row or more in database with same nama_driver value

这是我的控制器:

$collecting_id = $this->input->post('collecting_id');
$nama_driver = $this->input->post('nama_driver');

$data = array();
for ($i = 0; $i < count($collecting_id); $i++) {
    $data[] = array(
        'nama_driver' => $nama_driver[$i],
        'collecting_id' => $collecting_id[$i]    
    );
    }

$this->db->update_batch('process', $data, 'collecting_id');

{
$this->session->set_flashdata('msg','<strong>Data Deliveries Berhasil Diupdate.');
redirect('delivery/deliver_list'); 
}

这是我的观点:

 <div class="col-md-6 col-sm-6 col-xs-12">
    <div class="form-group">
    <label>Paket</label>

<select class="js-example-basic-multiple form-control" name="collecting_id[]" multiple="multiple">
<?php 
   if(@$paket_incoming) :
      foreach ($paket_incoming as $row) :
      ?>
<option value="<?php echo $row->collecting_id; ?>"><?php echo $row->collecting_id; ?></option>
<?php
   endforeach;
      endif;
      ?>
</select>
</div></div>

<div class="col-md-6 col-sm-6 col-xs-12">
<div class="form-group">
<label>Nama Driver</label>
<select class="js-example-basic-multiple form-control" name="nama_driver[]" multiple="multiple">
<?php 
   if(@$driver) :
      foreach ($driver as $row) :
         ?>
<option value="<?php echo $row->nama; ?>"><?php echo $row->nama; ?></option>
<?php
   endforeach;
      endif;
      ?>
</select>
</div></div>

<div class="col-md-12">
<center><button type="submit" class="btn btn-primary">Simpan</button>
                    <a href="<?php echo base_url();?>delivery/delivery_list"  class="btn btn-default">Batal</a></center>
                    </div></div>


推荐答案

您只需要更改

 for ($i = 0; $i < count($collecting_id); $i++) {
    $data[] = array(
        'nama_driver' => $nama_driver[$i],
        'collecting_id' => $collecting_id[$i]    
    );
    }

为此

 for ($i = 0; $i < count($collecting_id); $i++) {
           $tempdata = array(
        'nama_driver' => $nama_driver[$i],
        'collecting_id' => $collecting_id[$i]    
        );
        array_push($data, $tempdata);
        }

使用array_push。您的数组格式与CI期望的格式不同。

然后可以使用: $ this-> db-> update_batch('process',$ data,'collecting_id ');

use array_push . your array format was not same as CI expected to be.
then you can use : $this->db->update_batch('process', $data, 'collecting_id');

这篇关于Codeigniter-使用Select2更新多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆