【发布时间】:2014-06-24 15:03:25
【问题描述】:
我有一个 javascript 表单,允许用户通过 php 将数据添加到 MySQL 表。如果用户需要的不仅仅是最初给出的单个输入,该表单允许用户动态添加更多数据输入。
用户单击“添加预算项目”按钮以添加更多项目。
视图中的表单如下所示:
<input type="button" value="Add Budget Item" onClick="addRow('dataTable')" />
<input type="button" value="Remove Budget Item" onClick="deleteRow('dataTable')" />
<br>
<p>(All actions apply only to entries with check marked check boxes only.)</p>
</p>
<table id="dataTable" class="form" border="1">
<tbody>
<tr>
<p>
<td >
<input type="checkbox" name="chk[]" checked="checked" value ='<?php echo set_value('chk[]') ?>' />
</td>
<td>
<label>Item/Procedure</label>
<input type="text" name="itm_nm[]" value ='<?php echo set_value('itm_nm[]') ?>'/>
</td>
<td>
<label for="itm_trig">Trigger/Visit</label>
<input type="text" class="small" name="itm_trig[]" value ='<?php echo set_value('itm_trig[]') ?>'/>
</td>
<td>
<td>
<label for="itm_amt">Budget Amount</label>
<input type="text" class="small" name="itm_amt[]" value ='<?php echo set_value('itm_amt[]') ?>'>
</td>
</p>
</tr>
</tbody>
</table>
表单被提交给验证控制器。在验证失败后,我希望使用用户输入的所有动态创建的字段及其数据重新填充表单。
验证基本上是这样的:
function index(){
$this->form_validation->set_rules('itm_nm[]', 'Item Names', 'required');
$this->form_validation->set_rules('itm_trig[]', 'Item Triggers/Visits', 'required');
$this->form_validation->set_rules('itm_amt[]', 'Item Amounts', 'required|decimal');
if ($this->form_validation->run() == FALSE) {
$this->load->view('build_bud2');
}
当视图返回时,这适用于第一个不是由用户动态生成的表单项。但是,没有出现任何动态生成的数据字段(并且显然没有重新填充以前提交的数据)。
如何让动态生成的数据字段重新出现并重新填充,就像验证失败时初始数据一样?
【问题讨论】:
-
你有一个额外的仅供参考
-
我觉得还有一些你没有给我们展示的代码,特别是在 javascript 方面,如果有,请发布。
标签: javascript php forms codeigniter