我在表单中有一个循环字段,我想使用codeigniter将此数据插入到mysql数据库的同一字段中。
mysql字段:
id AUTO_INCREMENT
passenger_title
passenger_name
这是我的观点:
<?php
for ($i=1; $i <= $jml['jml_penumpang'] ; $i++) {?>
<h4>Data Penumpang <?= $i ?></h4><hr>
<div class="row">
<div class="col-md-3">
<select id="title_penumpang_<?= $i ?>" class="form-control" required>
<option value="Tuan">Tuan</option>
<option value="Nyonya">Nyonya</option>
<option value="Nona">Nona</option>
</select>
</div>
<div class="col-md-9">
<input type="text" name="nama_penumpang_<?= $i ?>" class="form-control" placeholder="Nama sesuai KTP/SIM" autocomplete="off" required>
</div>
</div>
<br><br>
<?php }
?>
我在控制器中尝试了此代码,但仍然无法正常工作:
$penumpang = array(
'client_id' => $this->input->post('client_id'),
'title' => $this->input->post('title_penumpang_1'),
'title' => $this->input->post('title_penumpang_2'),
'title' => $this->input->post('title_penumpang_3'),
'title' => $this->input->post('title_penumpang_4'),
'title' => $this->input->post('title_penumpang_5'),
'title' => $this->input->post('title_penumpang_6'),
'title' => $this->input->post('title_penumpang_7'),
'nama' => $this->input->post('nama_penumpang_1'),
'nama' => $this->input->post('nama_penumpang_2'),
'nama' => $this->input->post('nama_penumpang_3'),
'nama' => $this->input->post('nama_penumpang_4'),
'nama' => $this->input->post('nama_penumpang_5'),
'nama' => $this->input->post('nama_penumpang_6'),
'nama' => $this->input->post('nama_penumpang_7'),
);
$q = $this->Front_model->insert('tbl_penumpang', $penumpang);
if ($q) {
echo "berhasil insert data";
}
我考虑过在控制器中循环它,但不知道如何编码。请帮忙。
答案 0 :(得分:0)
在for循环后的视图中添加隐藏的输入
<?php
for ($i=1; $i <= $jml['jml_penumpang'] ; $i++) {?>
<h4>Data Penumpang <?= $i ?></h4><hr>
<div class="row">
<div class="col-md-3">
<select id="title_penumpang_<?= $i ?>" class="form-control" required>
<option value="Tuan">Tuan</option>
<option value="Nyonya">Nyonya</option>
<option value="Nona">Nona</option>
</select>
</div>
<div class="col-md-9">
<input type="text" name="nama_penumpang_<?= $i ?>" class="form-control" placeholder="Nama sesuai KTP/SIM" autocomplete="off" required>
</div>
</div>
<br><br>
<?php }
?>
<input type='hidden' value='<?= $i ?>' name=''total_count>
在控制器上
$penumpang = array();
for ($i=1; $i <= $this->input->post('total_count') ; $i++){
$penumpang[] = array(
'client_id' => $this->input->post('client_id'),
'title' => $this->input->post('title_penumpang_'.$i),
'nama' => $this->input->post('nama_penumpang_'.$i),
);
}
然后将$penumpang
传递到模型并插入批处理,因为您具有多维数组
例如
模型简单插入语句:
$this->db->insert('table_name', $penumpang);
您需要使用的model语句是:
$this->db->insert_batch('table_name', $penumpang);
答案 1 :(得分:0)
在控制器中尝试。
$title=$this->input->post('title_penumpang');
$nama=$this->input->post('nama_penumpang');
$penumpang=array(
'title'=implode(",", $title),
'nama'=implode(",", $nama)
);