【问题标题】:how to show validation error message for array element?如何显示数组元素的验证错误消息?
【发布时间】:2017-04-24 12:30:28
【问题描述】:

我有一个这样的表格:

<form action="" method="post">
  <input type="hidden" name="ndetails" value="<?php echo $ndetails; ?>"/>
  <?php
  for ($i=1; $i<=$ndetails; $i++)
  {
  ?>
    <textarea name="mydetails[]"></textarea>
    <?php echo form_error('mydetails[]'); ?>
  <?php
  }
  ?>
</form>

在控制器中,我使用这样的表单验证:

for ($i=1; $i<=$this->input->post('ndetails'); $i++)
{
  $this->form_validation->set_rules('mydetails[]', 'Day '.$i, 'trim|required');
}

问题是当文本区域超过 1 个时,form_error('mydetails[]') 仅显示最后一条错误消息。如何在每个文本区域之后单独显示错误?

【问题讨论】:

  • stackoverflow.com/a/17802145/689579,好像可以设置数组键-> &lt;textarea name="mydetails[&lt;?php echo $i ?&gt;]"&gt;..., &lt;?php echo form_error('mydetails['.$i.']'); ?&gt;, $this-&gt;form_validation-&gt;set_rules('mydetails['.$i.']', 'Day '.$i, 'trim|required');

标签: php codeigniter validation


【解决方案1】:

使用这个:代码未测试

<form action="" method="post">
  <input type="hidden" name="ndetails" value="<?php echo $ndetails; ?>"/>
  <?php
  for ($i=1; $i<=$ndetails; $i++)
  {
   $j=$i-1;
    echo "<textarea name='mydetails[".$j."]'></textarea>";
    echo form_error('mydetails['.$j.']'); 
  }
  ?>
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2020-06-20
    相关资源
    最近更新 更多