Codeigniter - 使用 Select2 更新多行
Codeigniter - Update Multiple Row With Select2
当输入2个值collecting_id属性和2个值nama_driver属性,并在数据库中成功输入2 行,
INPUT--> RESULT
但如果输入2个值collecting_id和1个值nama_driver,则只有1行输入数据库 ..
INPUT--> RESULT
如果我输入 2 个或更多 collecting_id 和 1 个 nama_driver,数据库中只有 1 行。我想要数据库中具有相同 nama_driver 值
的 2 行或更多行
这是我的控制器:
$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');
当输入2个值collecting_id属性和2个值nama_driver属性,并在数据库中成功输入2 行,
INPUT--> RESULT
但如果输入2个值collecting_id和1个值nama_driver,则只有1行输入数据库 ..
INPUT--> RESULT
如果我输入 2 个或更多 collecting_id 和 1 个 nama_driver,数据库中只有 1 行。我想要数据库中具有相同 nama_driver 值
的 2 行或更多行这是我的控制器:
$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');