嗨,大家好,我只想問爲什麼我的ajax請求得到一串FALSE(它應該從控制器得到錯誤消息)。通過jquery ajax和codeigniter得到驗證錯誤
這裏是控制器
function ajax_verify(){
$this->form_validation->set_rules('username', '', 'max_length[25]|min_length[4]|trim|required|xss_clean');
$this->form_validation->set_rules('email', '', 'valid_email|required|trim|xss_clean');
if($this->form_validation->run()==FALSE){
$errors = $this->form_validation->error_array();
echo json_encode($this->form_validation->error_array());
}else{
echo "Success!";
}
}
我擴展庫以獲取錯誤消息的片段(它的工作原理完全正常的PHP驗證)
class MY_Form_validation extends CI_Form_validation{
function __construct(){
parent::__construct();
}
function error_array(){
if(count($this->_error_array)===0){
return FALSE;
}else{
return $this->_error_array;
}
}
function get_tae(){
return "TAE!";
}
}
和持續的視圖和jQuery的AJAX代碼(返回錯誤而不是錯誤)。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<title>Title</title>
<body>
<?php //echo validation_errors('<div class="error">', '</div>');?>
<?php echo form_open('ajax/ajax_verify', array('id'=>'my_form'));?>
<?php echo form_label('Username'); ?>
<?php echo form_input('username', '', array('id' => 'username'));?>
<?php echo form_label('Email Address'); ?>
<?php echo form_input('email', '', array('id' => 'email')); ?>
<?php echo form_submit('submit', 'Submit'); ?>
<?php echo form_close();?>
<script type="text/javascript">
$(function(){
$('#my_form').submit(function(e){
$.get('ajax_verify', function(data){
$('#contents').append(data);
}, 'json') ;
e.preventDefault();
})
});
</script>
這是正確的嗎? '($ this - > _ error_array)' – 2012-04-20 09:33:00
我認爲這是它在php驗證中的工作,也許問題是在jQuery代碼中獲取錯誤字符串而不是像這樣的錯誤消息 {「username」:「用戶名字段是需要。「,」email「:」電子郵件字段是必需的。「} – tastebuds 2012-04-20 09:47:30