我有一個電子郵件字段的表單,我想在keyup()上針對MySQL數據庫進行驗證。我也嘗試過用戶名字段,並沒有這樣做的問題。但出於某種原因,電子郵件的值不會發布到php函數中,或者在onKeyUp()@符號的時刻從控制器返回任何內容。一封電子郵件的位於電子郵件地址中間的某處(例如[email protected]),「piet」的帖子還沒有完成,直到您點擊了班次2(@),然後所有內容都將消失。這裏是代碼:JQuery發佈有@符號的問題
$("#emailField").keyup(function(){
var email = $("#emailField").val();
$.post("<?php echo URL_CHECK_EMAIL_EXISTS; ?>" + email, function(data) {
alert(email);
});
});
這是控制器功能,即使我說一切正常的字符串,如用戶名一切正常。
public function check_email($email){
$exists = $this->User_Model->if_email_exists($email);
if($exists){
echo "true";
} else {
echo "false";
}
}
這裏是模型,它工作得很好:
public function if_email_exists($email){
$this->db
->from('users')
->where('email', $email)
->limit(1);
$query = $this->db->get();
if ($query->num_rows() > 0){
return true;
} else {
return false;
}
}
我建議不要把DB上的onkeyup事件調用,除非它的絕對neccessary ..太多DB調用的心不是那麼好;) –
^^ ^這!另外,請查閱關於如何使用ajax post調用發送數據的文檔。你不要把它放在網址中。 http://api.jquery.com/jQuery.post/ – Archer
MVC是值在url中的原因 –