0

我有以下表格:

<label>One</label> 
 Product ID:<input type="text" name="productid[]" value=""> 
 Product Quantity: <input type="text" name="quantity[]" value=""> <br>

<label>Two</label> 
 Product ID:<input type="text" name="productid[]" value=""> 
 Product Quantity: <input type="text" name="quantity[]" value=""> <br>

<label>Three</label> 
 Product ID:<input type="text" name="productid[]" value=""> 
 Product Quantity: <input type="text" name="quantity[]" value=""> <br>

 <!-- there may be more inputs like above (users can create new inputs 
    as many as they want) // I have a jquery function to create new rows-->


  <input type="submit" value="submit">

name="productid[]"现在我的问题是当我输入这样的名称而不是在我的表单中时,如何使用 Codeigniter 验证name="productid"表单。

通常我用这种方式验证我的表单,但这次它不适用于上面的表单。

如何验证它?

4

2 回答 2

0

你试过这个...?指南下面的几行...

于 2012-05-22T20:50:03.943 回答
0

您将使用带括号的文字字段名称:

$this->form_validation->set_rules('product_id[]', 'Product', 'required');
$this->form_validation->set_rules('quantity[]', 'Quantity', 'required');

这将对具有该名称的每个字段运行验证。如果您只需要验证特定索引,请再次使用文字字段名称(并在 HTML 中指定索引):

// <input name="product_id[3]">
$this->form_validation->set_rules('product_id[3]', 'Product', 'required');

这一切都在Codeigniter 的表单验证类的文档中

使用数组作为字段名

表单验证类支持使用数组作为字段名。考虑这个例子:

<input type="text" name="options[]" value="" size="50" />

如果确实使用数组作为字段名称,则必须在需要字段名称的帮助函数中使用 EXACT 数组名称,并将其用作验证规则字段名称。

例如,要为上述字段设置规则,您将使用:

$this->form_validation->set_rules('options[]', 'Options', 'required');

或者,要显示上述字段的错误,您可以使用:

<?php echo form_error('options[]'); ?>

或者重新填充您将使用的字段:

<input type="text" name="options[]" value="<?php echo set_value('options[]'); ?>" size="50" />

您也可以使用多维数组作为字段名称。例如:

<input type="text" name="options[size]" value="" size="50" />

甚至:

<input type="text" name="sports[nba][basketball]" value="" size="50" />

与我们的第一个示例一样,您必须在辅助函数中使用确切的数组名称:

<?php echo form_error('sports[nba][basketball]'); ?>

如果您使用具有多个选项的复选框(或其他字段),请不要忘记在每个选项后留下一个空括号,以便将所有选择添加到 POST 数组中:

<input type="checkbox" name="options[]" value="red" />
<input type="checkbox" name="options[]" value="blue" />
<input type="checkbox" name="options[]" value="green" />

或者,如果您使用多维数组:

<input type="checkbox" name="options[color][]" value="red" />
<input type="checkbox" name="options[color][]" value="blue" />
<input type="checkbox" name="options[color][]" value="green" />

当您使用辅助函数时,您还将包括括号:

<?php echo form_error('options[color][]'); ?>

于 2012-05-22T20:51:10.243 回答