ajax/CodeIgniter(PHP):在PHP中返回TRUE/FALSE,如何让jQuery看到这一点?

ajax/CodeIgniter(PHP):在PHP中返回TRUE/FALSE,如何让jQuery看到这一点?,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我构建了一个检查用户名的函数。我使用它作为CodeIgniter中表单验证的回调,它工作得很好。但是,我还想将它与AJAX一起使用,以动态检查用户是否启用了JS。所以我的控制器有: function check_username($s = FALSE) { if ($s): $this->db_common->like('username', $s); $query = $this->db_common->get('users');

我构建了一个检查用户名的函数。我使用它作为CodeIgniter中表单验证的回调,它工作得很好。但是,我还想将它与AJAX一起使用,以动态检查用户是否启用了JS。所以我的控制器有:

function check_username($s = FALSE)
{
    if ($s):
        $this->db_common->like('username', $s);
        $query = $this->db_common->get('users');

        if ($query->num_rows() > 0):
            $this->form_validation->set_message('check_username', 'Username taken. Choose another!');
            return FALSE;
        else:
            return TRUE;
        endif;
    else:
        echo 'Username required';
    endif;
}
我的HTML/JS是这样的:

$(document).ready(function()
{
var delayed;
$("#username").keyup(function()
{
    clearTimeout(delayed);
    var value = this.value;
    if (value)
    {
        delayed = setTimeout(function() {
            $.ajax
            ({
                type: "POST",
                url: "<?php echo base_url(); ?>auth/check_username/",
                data: $("#username").val(),
                success: function(html)
                {
                    $("#username_check").html(html);
                }
            });
        }, 100);
    }
});
});
$(文档).ready(函数()
{
var延迟;
$(“#用户名”).keyup(函数()
{
清除超时(延迟);
var值=此值;
如果(值)
{
延迟=设置超时(函数(){
$.ajax
({
类型:“POST”,
url:“auth/check_username/”,
数据:$(“#用户名”).val(),
成功:函数(html)
{
$(“#用户名检查”).html(html);
}
});
}, 100);
}
});
});
基本上,如果用户名存在,我将返回FALSE;如果用户名确实存在,则返回TRUE。如何让jQueryAjax看到这一点?基本上,我希望jQuery检查它是否为false,然后说“username exists”,如果为true,则说“username is ok”

基本上,如果用户名存在,我将返回FALSE;如果用户名确实存在,则返回TRUE。如何让jQueryAjax看到这一点

你不能直接。我将输出
0
1

基本上,如果用户名存在,我将返回FALSE;如果用户名确实存在,则返回TRUE。如何让jQueryAjax看到这一点


你不能直接。我将输出
0
1

我将从PHP脚本中返回true或false作为JSON布尔值,并使用javascript的eval()函数将其计算为javascript变量。

我将从PHP脚本中返回true或false作为JSON布尔值,并使用javascript的eval()函数将其计算为javascript变量。

执行以下操作:

echo 'ok';
return TRUE;

原因是jQuery看不到PHP返回的布尔值,因为它们没有发送到浏览器的输出。

执行以下操作:

echo 'ok';
return TRUE;

这是因为jQuery看不到PHP返回的布尔值,因为它们没有发送到浏览器的输出。

有一种方法可以使用PHP和jQuery来实现。这里有一个例子

只需让php脚本回显true或false即可

PHP->echo-true;或回声假

$.post("your_url/your_class/your_method", {  } ,
function(data) {

    if(data) alert('true');
    else alert('false');

}, "json")
.error(function() { //alert("an AJAX error occurred!"); 
});

有一种方法可以通过PHP和jQuery实现。这里有一个例子

只需让php脚本回显true或false即可

PHP->echo-true;或回声假

$.post("your_url/your_class/your_method", {  } ,
function(data) {

    if(data) alert('true');
    else alert('false');

}, "json")
.error(function() { //alert("an AJAX error occurred!"); 
});

问题是,我需要在其中保留TRUE和FALSE,以便我的CodeIgniter表单验证回调正常运行。这是必须的。啊。。。如果它只包含文本TRUE或FALSE,我想你可以做“if(html==“TRUE”)返回TRUE;else返回FALSE;问题是我需要在其中保留TRUE和FALSE,以便我的CodeIgniter表单验证回调正常运行。这是必需的。啊……如果它只包含文本TRUE或FALSE,我想你可以做“if”(html==“TRUE”)返回TRUE;否则返回false;