【问题标题】:Codeigniter re-validate formCodeigniter 重新验证表单
【发布时间】:2013-03-17 16:34:23
【问题描述】:

我使用 codeigniter 工作了好几个月,现在我遇到了一些问题。 我有一个带有多个输入字段的简单表单。 可以说姓名、地址、电话、电话网络提供商。 所以我将必需的规则设置为名称和地址,但电话和网络是可选的。 痛苦来了。如果在电话字段中输入了某些内容,我想为网络设置必需的规则。我可以用 JS 做到这一点,但这不是重点。我也想要服务器端检查。 有人知道如何在更多的 codeigniter 环境中执行此操作吗?

干杯!

【问题讨论】:

    标签: php forms codeigniter post validation


    【解决方案1】:

    在您设置表单验证规则的控制器中,执行以下操作:

    if ($this->input->post('phone_number') != '') {
        $this->form_validation->set_rules('phone_carrier', 'Phone carrier', 'required');
    }
    

    这样,只有在提交电话号码时才会设置 phone_carrier 的规则。您的验证将按照设置规则中的定义进行。

    这行得通吗?

    【讨论】:

    • 我会尝试这种方式。我想感谢您的帮助,我发现了我的错误。我应该只在 form_validation->run() 执行之前声明规则。谢谢你:)
    【解决方案2】:

    这是一种常见的情况,很容易实现:只需提供电话号码规则,但不要将其指定为“必填”。

    您可以使用一些新的级联规则来修改表单验证模块,但为什么不简单地自己进行所需的检查呢?

    【讨论】:

    • 我觉得你不太了解我。 :) 电话字段不是必需的,但我希望当有人输入内容时,下一个字段电话网络提供商将根据需要设置,但前提是电话已填写。
    • 这是我想到的第一件事,但我想将“本地”移动到 codeigniter。我的意思是我希望我的代码保持干净。就像我想通过 form_error(); 显示错误一样;
    猜你喜欢
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2016-09-05
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多