我想通過codeigniter驗證一些領域witj ajax,但不能完全弄清楚它是如何「正確」。codeigniter阿賈克斯form_validation(與jquery)
我的ajax:
var timeout = null;
$(document).ready(function(){
$('.new-user-box input').each(function(){
var key = $(this).attr('name');
$(this).on("keyup", function() {
var value = $(this).val();
if(value=="") {
return false;
}
var json = {};
json[key] = value;
json['ajax'] = '1';
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function() {
$.ajax({
url: 'auth/ajax_validate',
type: 'post',
data: json,
success: function(data) {
console.log(data);
}
})
}, 1000)
});
})
})
這基本上讓我所有的輸入框發送它們的價值在KEYUP(1秒後)。
我的PHP(只是從用戶名測試片段):
<?php
function ajax_validate()
{
// Test if the method is called by ajax and validate the input field
if($this->input->post('ajax'))
{
if($this->input->post('username'))
{
if($this->form_validation->set_rules('username', 'Brugernavn', 'required|trim|min_length[1]|max_length[20]|is_unique[users.username]|xss_clean') && !$this->form_validation->run())
{
$validates = 0;
}
else {
$validates = 1;
$error = "";
}
$response = array($validates,$form_error('username'));
echo json_encode($response);
exit;
}
}
}
?>
我接收的響應是一個PHP錯誤:
消息:未定義變量:form_error
致命錯誤:功能名稱必須是線路401上的\ PATH TO CODEIGNITER \ application \ modules \ auth \ controllers \ auth.php中的字符串
希望有人有線索如何解決此問題,或做另一種方式。先謝謝你。
燁燁燁燁 – SpYk3HH 2013-04-05 17:53:03
@ SpYk3HH是啊,我喜歡它': D' – Jai 2013-04-05 17:54:21
哇,不敢相信我現在覺得多麼令人難以置信的愚蠢,我沒有看到。謝謝! – jah 2013-04-05 18:06:29