【问题标题】:How to validate if one field is set then another field is require in Codeigniter如何验证是否设置了一个字段,然后在 Codeigniter 中需要另一个字段
【发布时间】:2014-05-20 20:59:21
【问题描述】:

我有两个输入字段供用户输入年份范围。如果用户没有输入任何内容,页面将运行默认设置。如果用户输入其中一个字段,则必须同时输入另一个字段才能通过验证。

我还将规则保存为数组并放入 application/config/form_validation.php。我该怎么做?

【问题讨论】:

    标签: forms codeigniter validation


    【解决方案1】:

    您需要进行自定义检查。请参阅有关CallBacks on the CI Form Validation page 的信息。因此,您将为字段一设置调用 bak。在回调函数中,您将执行您的规则并返回 TRUE 或 FALSE。

    【讨论】:

    • 我已经阅读了回调文档,但它向您展示了在控制器中执行此操作,我该如何在配置的 form_validation.php 文件中执行此操作?
    • 回调函数只是验证数组的一部分。您将其放入 form_validation.php 文件中,就像任何其他规则一样,当您调用 run 时,它会回调您的函数。
    【解决方案2】:

    只需将您的表单验证放在 if strlen($_POST['field_1'])>0 或 if isset($_POST['field_1']) 语句中,以便它仅在 field_1 中有值时运行。

    if(isset($_POST['field_1'])){
         $this->form_validation->set_rules('field_1', 'Field 1', '');
         $this->form_validation->set_rules('field_2', 'Field 2', 'required');
    
        if (!$this->form_validation->run()) {
              $errors = validation_errors();
        } else {
    
            //do your thing
    
         }
    }
    

    把它放在你的控制器中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 2022-01-14
      • 2017-06-07
      • 1970-01-01
      • 2011-07-21
      相关资源
      最近更新 更多