我的表單有一個手機和一個電話字段。我希望用戶填寫其中一個字段,或兩個字段,但不是兩個字段。在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