Xin chào các bạn tôi chỉ muốn hỏi tại sao yêu cầu ajax của tôi không nhận được một chuỗi FALSE (nó sẽ nhận được thông báo lỗi từ bộ điều khiển).nhận lỗi xác thực thông qua jquery ajax và codeigniter
Dưới đây là đoạn điều khiển
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!";
}
}
tôi mở rộng thư viện để có được các thông báo lỗi (Nó hoạt động hoàn toàn tốt đẹp trong xác nhận 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!";
}
}
và kéo dài quan điểm và jquery ajax mã (Trả về sai thay vì các lỗi).
<!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>
Điều này có đúng không? '($ this -> _ error_array)' –
Tôi nghĩ rằng nó là làm việc của nó trong php xác nhận, có thể vấn đề là trong mã jquery của nó nhận được chuỗi sai thay vì thông báo lỗi như thế này {"username": " "," email ":" Trường email là bắt buộc. "} – tastebuds