我的表单有一个手机和一个电话字段。我希望用户填写其中一个字段,或两个字段,但不是两个字段。在PHP Codeigniter中进行自定义验证 - 需要两个字段之一
我已经看到了在其他语言中使用它的方法,但是我可以就如何使用Codeigniter做一些建议吗?
我的表单有一个手机和一个电话字段。我希望用户填写其中一个字段,或两个字段,但不是两个字段。在PHP Codeigniter中进行自定义验证 - 需要两个字段之一
我已经看到了在其他语言中使用它的方法,但是我可以就如何使用Codeigniter做一些建议吗?
只是做服务器端对客户端的一个JS验证和PHP验证(或使用CI的表单辅助函数)...无论如何,PHP应该是这个样子:
if ($_POST['cellphone'] == '' OR $_POST['phone' == '') {
// do stuff like make an notification, alert, etc... and take users back to the form
}
我已经在配置文件夹中创建了所有验证的数组。所以我应该怎么做这种类型的验证。 @Shomz –
我们需要一个不是核心的规则php –
@Darshanambaliya你可以问另一个问题。 – Shomz
你可以做它为:
$this->form_validation->set_rules('phone', 'Your validation message.', 'callback__phone_check');
并做好功能:
function _phone_check() { //check for phone and cellphone field. //make sure one field is not empty and return accordingly }
希望帮助
我应该在哪里做?鉴于,控制器? –
@ jQuery.PHP.Magento.com应该在你的控制器..!在这里阅读更多:: https://ellislab.com/codeIgniter/user-guide/libraries/form_validation.html#callbacks –
只是想用自己的方式抛出一些快速代码片段。我想完成这个任务,而这个问题是我在搜索时首先在谷歌的条目之一。我把灵感来自于其他的答案,在这里就是我所做的这些工作对我来说(因人而异):
$this->form_validation->set_message('contactVerify', 'Either Phone or Email is required');
...
$this->form_validation->set_rules('phone', 'Phone', 'trim|callback_contactVerify[email]|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'trim|callback_contactVerify[phone]|valid_email|xss_clean');
...
public function contactVerify($contact, $otherField) {
return ($contact != '' || $this->input->post($otherField) != '');
}
由于这是一个很简单的验证功能,我预先设定的错误信息,所以我不必将其设置在验证功能中。我通过方括号将其他字段作为第二个参数传入。
希望这是有用的。
不幸的是,我不认为这工作了。我认为如果规则中不存在“必需”,则不会检查其他规则(为了效率,我假设)。 – twistedpixel
到目前为止您如何验证? – bensiu
CI表单验证 –
使用回调来比较手机与手机 – bensiu