Codeigniter ajax表单验证

时间:2016-01-30 05:39:37

标签: php jquery ajax codeigniter

我实现了ajax表单验证。但即使所有输入类型都包含值。它会显示$this->form_validation->run() false。我没有得到如何解决这个问题。

控制器代码

$this->form_validation->set_rules('first_name', 'First Name', 'trim|required');
        $this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
        $this->form_validation->set_rules('balance', 'Balance', 'trim|required|numeric');


    if ($this->form_validation->run() == FALSE) {
        echo validation_errors();


    }else{

    }

AJAX致电

$('#updateUsersInfo').on('click',function(){


 $.ajax({
        url:"<?php echo base_url();?>admin/updateUserData",
        type: "POST",
        dataType: 'json',
        data: {'submit_token': $('#token_id').val()},
        success:function(data){

            $('#bindErrors').text(data);


        }

    }) ;
});

查看代码

<form class="popupform" method="post">
            <div class="error" id="bindErrors"></div>
                <div  id="bindSuccessMsg"></div>
            <div class="row">
                <div class = "col-md-8 col-md-offset-2">
                    <div class="col-md-8">
                        <div class="form-group">
                            First name <input type="text" class="form-control" placeholder="First Name" id="first_name" name="first_name" value="">
                        </div>
                        <div class="form-group">
                            Last name <input type="text" class="form-control" placeholder="Last Name" name="last_name" id="last_name" value="">
                        </div>
                        <div class="form-group">
                            Email <input type="email" id="email" class="form-control" readonly placeholder="Email address" name="email_address" value="">
                        </div>
                        <div class="form-group">
                            Balance <input type="number" id="balance" class="form-control" placeholder="Balance" name="balance" value="">
                        </div>
                        <div class="form-group">
                            <div class="radio" >
                                <label style="margin-right: 10px;">
                                    <input type="radio"  name="account_type" value="1"  >Personal</label>
                            </div>
                            <div class="radio">
                                <label><input type="radio"  name="account_type"  value="3">Business</label>
                            </div>
                        </div>
                        <div class="form-group" style="clear:left; padding-top: 10px;">
                            <input type="hidden" name="user_id" id="user_id" value=""/>

                            <input type="submit" id="updateUsersInfo" class="btn tf-btn btn-default" value="Submit"/>
                        </div>
                    </div>
                </div>
            </div>
            </form>

我使用过CSRF令牌,但现在代码中没有考虑到这一点。除此之外,有人可以让我知道为什么错误会出现,即使字段包含有效数据。

我正在使用codeigniter 3.0.3

1 个答案:

答案 0 :(得分:0)

在此行echo validation_errors();你要做的是 echo json_encode(validation_errors())因为在ajax调用中你使用的是dataType:&#39; json&#39;和success:function(data){console.log(data);试试这些东西它会起作用