编码器重新验证表单


Codeigniter re-validate form

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

干杯!

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

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

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

这样行吗?

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

你可以用一些新的级联规则来修改表单验证模块,但是为什么不直接自己做必要的检查呢?