【问题标题】:Codeigniter Custom Form Validation RulesCodeigniter 自定义表单验证规则
【发布时间】:2020-07-02 11:21:50
【问题描述】:

我正在尝试为字段制定自定义验证规则。这是一个多重复选框。

<div class="row checkbox-wrapper" id="checkbox-wrapper">
   <?php foreach ($facilities as $facility) : ?>
      <div class="col-md-6 mb-2">
         <div class="custom-control custom-checkbox">
            <input type="checkbox" name="list_facility[]" value="<?php echo $facility['id']; ?>">
            <label class="custom-control-label"><?php echo $facility['facility_name'] ?></label>
         </div>
      </div>
   <?php endforeach ?>
</div>

所以我尝试使用名为 facility_valdation()

的自定义规则来验证它们

$this-&gt;form_validation-&gt;set_rules('list_facility', 'Facility List', 'callback_facility_validation');

public function facility_validation($array)
{
   if ($array == NULL) {
      $this->form_validation->set_message('facility_validation', 'Fasilitas tidak boleh kosong (minimal = 1)');
      return FALSE;
   } else {
      return TRUE;
   }
}

错误条件是正确的,每当我将复选框留空时,它都会返回消息。但如果我尝试选中一个或多个框,我会不断收到错误消息。

我已经尝试 var_dump 我的 list_facility 变量并且我已经得到了我想要的。当没有选中复选框时,它为 NULL,或者我选中的每个复选框都有一个 id 数组。

我已经在另一个控制器中实现了 custoiom 验证,它工作得很好

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您的表单输入字段是数组,因此您的验证字段也必须是数组。应该是

    $this->form_validation->set_rules('list_facility[]', 'Facility List', 'callback_facility_validation');
    

    list_facility[] 而不是list_facility

    我试过了,效果很好。希望这会有所帮助

    【讨论】:

    • @cah-kangkung 不客气。您能否将我的答案标记为已接受的答案?然后其他用户知道这个问题已经解决并且......这就是我的动机:D
    猜你喜欢
    • 2019-11-21
    • 2020-04-27
    • 2012-01-01
    • 2012-03-31
    • 2015-04-10
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多