php – 通过jquery ajax和codeigniter获取验证错误

前端之家收集整理的这篇文章主要介绍了php – 通过jquery ajax和codeigniter获取验证错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨伙计们,我只是想问为什么我的ajax请求确实得到一个FALSE字符串(它应该从控制器获取错误消息).

这是控制器的片段

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代码(返回false而不是错误).

<!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>
试试这个.它会工作正常.

在控制器中添加这两种方法

public function CreateStudents() {

        $this->load->helper('form');

        $data['title'] = "Create Students Page";
        $data['success'] = "";
        $this->load->view('templates/header',$data);
        $this->load->view('createstudents',$data);
        $this->load->view('templates/footer',$data);

    }

    public function CreateStudentsAjax() {

        $this->load->helper('form');
        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('','');

        $this->form_validation->set_rules('roll','Roll Number','required');
        $this->form_validation->set_rules('name','Name','required');
        $this->form_validation->set_rules('phone','Phone','required');

        if ($this->form_validation->run()) {

            $this->welcome_model->InsertStudents();
            echo json_encode("Oks");
        } else {

            $data = array(
                'roll' => form_error('roll'),'name' => form_error('name'),'phone' => form_error('phone')
            );

            echo json_encode($data);
        }
    }

在视图中添加表单和名为“mesage”的DIV

<div id="message">


        </div> 

        <?PHP echo form_open('welcome/CreateStudentsAjax'); ?>

        <label for="roll">Student Roll Number</label>
        <input type="text" id="txtRoll" value="" name="roll"/>

        <label for="Name">Students Name</label>
        <input type="text" id="txtName" value="" name="name"/>

        <label for="Phone">Phone Number</label>
        <input type="text" id="txtPhone" value="" name="phone"/>

        <input type="submit" name="submit" value="Insert New Students"  />

        <?PHP echo '</form>'; ?>

现在脚本包含

<script type="text/javascript">

            $(document).ready(function(){

                $('form').submit(function(){
                    //alert('ok');      
                    $.ajax({
                        url:this.action,type:this.method,data:$(this).serialize(),success:function(data){
                            var obj = $.parseJSON(data);

                            if(obj['roll']!=null)
                            {                               
                                $('#message').text("");
                                $('#message').html(obj['roll']);
                                $('#message').append(obj['name']);
                                $('#message').append(obj['phone']);
                            }
                            else
                            {                               
                                $('#message').text("");
                                $('#message').html(obj); 
                            }

                        },erro:function(){
                            alert("Please Try Again");
                        }                        
                    });
                    return false;
                });                        
            });

        </script>

猜你在找的PHP相关文章