使用一组大的输入框进行表单验证


Form validation with a large set of input box

有一组输入框,例如:

<input type="text" class="form-control my-input" name="q1" size="63" value="<?= set_value("q1"); ?>">
<input type="text" class="form-control my-input" name="q2" size="63" value="<?= set_value("q2"); ?>">
....
<input type="text" class="form-control my-input" name="q100" size="63" value="<?= set_value("q30"); ?>">

有30个输入框,从q1到q30

如果我想验证它们,我需要设置

$this->form_validation->set_rules('q1', lang("q1"), 'required');

30次,如果不重要,验证错误消息将显示30次。

因此,我想:

  1. 假设不需要q15,则循环遍历post数组,并检查其他输入框是否已输入或为空。

  2. 如果所需输入框中的任何一个未输入,则仅显示一条错误消息

如何在codeigniter中实现这一点?

这是的代码示例

for($i = 1; $i <= 30; $i++){
  $this->form_validation->set_rules('q' + $i, lang('q' + $i), 'required');
}

更新当名称不符合模式时:

$names = [1=>'q1', 'a1', 'd3', ...];
for($i = 1; $i <= 30; $i++){
  $this->form_validation->set_rules($names[$i], lang($names[$i]), 'required');
}