[英]Insert foreign key value with submit multiple rows
我正在使用codeigniter。 我有一個可以一次保存多個數據的表格。 數據庫中有一個下拉列表。 現在,我想使用此值並將其ID作為外鍵保存為表。 但這是行不通的。
視圖
<form class="form-inline" role="form" id="frmadd" action="<?php echo base_url() ?>index.php/boq_controller/create" method="POST">
<?php
$attributes = 'class = "form-control" id = "user" name="boq[<?php echo $i ?>][user]"';
echo form_dropdown('user',$user, set_value('user'), $attributes);?>
<?php
$i =0;
for($i=0;$i<10;$i++){?>
<tr class="txtMult">
<td><input type="text" name="boq[<?php echo $i ?>][work_product_id]" class="form-control" id="work_product_id" placeholder=""></td>
<td><input type="text" name="boq[<?php echo $i ?>][work_item_description]" class="form-control" id="work_item_description" placeholder=""></td>
<td><input type="text" name="boq[<?php echo $i ?>][quantity]" id="" class="form-control val1" /></td>
<td><select style=" height: 33px; width: 102px; border-radius: 2px;" name="boq[<?php echo $i ?>][unit]">
<option value="" selected> </option>
<option value="cube">cube</option>
<option value="sq.ft">sq.ft</option>
<option value="Cwts">Cwts</option>
<option value="Gal" >Gal</option>
</select></td>
<td><input type="text" name="boq[<?php echo $i ?>][rate]" class="form-control val2"/></td>
<td><input type="text" name="boq[<?php echo $i ?>][laboure_hrs]" id="" class="form-control val3" /></td>
<td><input type="text"name="boq[<?php echo $i ?>][laboure_cost]" id="" class="form-control val4"/></td>
<td><input type="text" name="boq[<?php echo $i ?>][others]" class="form-control" id="others" placeholder=""></td>
<td>
<span class="multTotal">0.00</span><input type="text" id="txtmultTotal" name="boq[<?php echo $i ?>][txtmultTotal]">
<!-- <input type="text" class="multTotal" placeholder="0.00">-->
</td>
</tr>
<?php }?>
模型
public function create()
{
foreach($_POST['boq'] as $boq)
{
$_POST['user'];
$this->db->insert('boq', $boq);
}
}
控制者
public function index()
{
$data['user'] = $this-> boq_model ->get_user();
$this->load->view('admin_include/header');
$this->load->view('boq/boq',$data);
}
所以首先第一件事情:你是不是包括下拉以$attributes
里面的for循環。
第二: 驗證 。 您是否驗證用戶輸入? 如果您使用的是Codeigniter 3.0,請在此處( http://www.codeigniter.com/userguide3/libraries/form_validation.html#form-validation-tutorial )或在https://ellislab.com/codeigniter/user- guide / libraries / form_validation.html(如果您使用的是舊版本),即使它們或多或少都一樣。
第三:刪除$_POST['user']
使用,並使用$this->input->post('user');
,如果啟用了XSS過濾,則CodeIgniter將過濾數據,如果未設置該值,則將返回false
。
第四:如果您使用的是MVC框架,請分開邏輯。 在模型中移動插入物,並將其從控制器傳遞給數據。
獎金
看看$ this-> db-> insert_batch()
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
$this->db->insert_batch('mytable', $data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.