首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >codeigniter ajax form_validation (带jquery)

codeigniter ajax form_validation (带jquery)
EN

Stack Overflow用户
提问于 2013-04-06 01:47:18
回答 2查看 3K关注 0票数 0

我正在尝试通过codeigniter验证一些ajax字段,但不太清楚如何“正确”。

我的ajax:

代码语言:javascript
代码运行次数:0
运行
复制
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 (只是用户名测试的一小段):

代码语言:javascript
代码运行次数:0
运行
复制
<?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行上CODEIGNITER\application\modules\auth\controllers\auth.php的\路径中的字符串

希望有人知道如何解决这个问题,或者用另一种方法。提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-06 01:51:31

去掉"form_error“前的$。

代码语言:javascript
代码运行次数:0
运行
复制
$response = array($validates,$form_error('username'));

代码语言:javascript
代码运行次数:0
运行
复制
$response = array($validates,form_error('username'));
票数 6
EN

Stack Overflow用户

发布于 2013-10-23 08:27:49

我发现了这个:

代码语言:javascript
代码运行次数:0
运行
复制
$this->input->is_ajax_request();

从这里开始:

Way to tell if a post came from an ajax call in codeigniter?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15840243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档