我有一個codeigniter應用程序。我的視圖使用數據庫行ID附加到輸入名稱以獲取唯一的ID。這允許我在我的表單操作中使用所有輸入,這是更新。動態表單輸入名稱的codeigniter表單驗證
我查看語法:
<?php if(isset($records)) {?>
<table id="hor-minimalist-a">
<tr>
<th> </th><th> </th><th>Customer Name</th><th>postalcode</th>
<tr>
<?php if(isset($records)) : foreach ($records as $row) : ?>
<tr>
<td>
<?php echo anchor('masterdata/confirm_delete_customer/'.$row->id, img(array('src'=>'images/delete_icon.png','border'=>'0','alt'=>'Delete'))); ?>
</td>
<td>
<input type=checkbox name="editcustomer[]" id="editcustomer[]" value="<?php echo $row->id ?>">
</td>
<td>
<input class="inputwide" type="text" name="customer_name_<?php echo $row->id ?>" id="customer_name_<?php echo $row->id ?>" value="<?php echo $row->customer_name ; ?>" >
</td>
<td>
<input class="inputnarrow" type="text" name="postalcode_<?php echo $row->id ?>" id="postalcode_<?php echo $row->id ?>" value="<?php echo $row->postalcode ; ?>" >
</td>
</tr>
<?php endforeach ; ?>
</table>
<input type="submit" value="Update Checked Customers">
<?php endif; ?>
<?php echo form_close(); ?>
<?php } else {?>
<h4 id="warning"> No Customers currently in database</h4>
<?php } ?>
,你可以看到輸入name's
和id's
然後獨一無二的。
我的控制器語法如下:
function manage_customers()
{
$data['title']="Manage Customers";
//query model to get data results for form
$data=array();
if($query=$this->model_master_data->get_customer_records()){
$data['records']=$query;
}
$this->load->view("master_data/view_master_data_header",$data);
$this->load->view("master_data/view_master_data_nav");
$this->load->view("master_data/view_content_master_data_manage_customers",$data);
$this->load->view("master_data/view_master_data_footer");
$editcustomer = $this->input->post('editcustomer');
// single update - working
if($this->input->post('editcustomer') != false)
{
foreach ($editcustomer as $row_id)
{
$data = array(
'postalcode' => $this->input->post('postalcode_'.$row_id),
'customer_name' => $this->input->post('customer_name_'.$row_id));
$this->model_master_data->update_customer_records($row_id, $data);
}
$this->session->set_flashdata('dbaction', 'Selected Records have been updated successfully');
redirect('masterdata/manage_customers', 'refresh');
}
}
我如何利用笨驗證類,以確保用戶修改輸入框與可信的數據?
的
$this->form_validation->set_rules("primary_contact_tell","
聯繫人怎麼能告訴","required|xss_clean|min_length[10]|max_length[14]");
參考輸入字段的正確的動態名字?表格目前只有客戶名稱和郵政編碼,但需要添加其餘的字段。
在此先感謝,一如既往。
感謝yabol,試圖如你所說,但未能按有關問題的更新?在我看來,我的正常的foreach語句是,你的建議是針對模型,而foreach在那裏失敗。請指教。謝謝, – Smudger 2013-03-03 15:54:10
將它更改爲:foreach($ editcustomer as $ row_id),如下所示更新每一行。 – 2013-03-03 22:16:47
謝謝雅博爾。試着用這個,並得到一個錯誤「試圖獲取非對象的屬性」對我來說這是$ row_id-> id'沒有值的結果。我會馬上更新我的當前語法,並向您展示輸出的示例。再次感謝 – Smudger 2013-03-04 06:36:17