2011-06-01 26 views

回答

3

如果你想兩個變量傳遞給你的函數,改變行6

$this->form_validation->set_rules('username', 'Username', 'required|alpha|xss_clean|callback__check_login'); 

$this->form_validation->set_rules('username', 'Username', 'required|alpha|xss_clean|callback__check_login[$val1,$val2]'); 

對於兩個以上的值,你會需要使用http_build_query($val2)然後explode它的內部你的功能

1

(請糾正我,如果我沒有得到這個問題吧:)

我不會做這樣的。

而不是使用_check_login()函數回調作爲驗證者的用戶名字段(這真的沒有道理,恕我直言),爲什麼不調用check_login($username,$password)函數時輸入字段驗證?

所以

if($this->form_validation->run() == FALSE) 
    { 
    $this->load->view('user_login'); 
    } 
    else 
    { 
    $this->user_model->check_login(); 
    } 

在用戶模型,你會做檢查

無論如何,這是該form_validation庫是什麼,驗證輸入,不細說DATAS。

如果你只是想檢查一個用戶的存在(例如爲了避免重複)來驗證輸入字段,那麼你不需要$ password參數,所以回調就可以正常工作。

+0

嗯,如果我這樣做,我不從VALIDATION_ERRORS得到任何錯誤消息()我?所以,這有點奇怪,我想.. – Dexty 2011-06-01 16:49:48

+0

嗯,做了另一種方式。所以,無論如何,感謝m8的舉動。 – Dexty 2011-06-01 16:56:27

0

公共功能score_check($ name,$ arr) {如果你想傳遞兩個變量我有找到了用這兩個變量創建數組的最佳方法。

$arr = array($val1, $val2); 
$this->form_validation->set_rules('username', 'Username', 'required|alpha|xss_clean|callback__check_login['.$arr.']'); 

你的回調會是這樣的

public function check_login($str, $arr) { 
     $val1 = $arr[0]; 
     $val2 = $arr[1]; 
} 

希望幫助

相關問題