代码之家  ›  专栏  ›  技术社区  ›  dallen

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

  •  0
  • dallen  · 技术社区  · 14 年前

    我建立了一个检查用户名的函数。我使用它作为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);
        }
    });
    });
    

    基本上,如果用户名存在,我将返回FALSE,如果确实存在,则返回TRUE。如何让jqueryajax看到这一点?基本上,我希望jQuery检查它是否为false,然后说“username exists”,如果为true,则说“username is okay”。

    4 回复  |  直到 14 年前
        1
  •  3
  •   user290102 user290102    14 年前

    执行以下操作:

    echo 'ok';
    return TRUE;
    

        2
  •  1
  •   Pekka    14 年前

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

    你不能直接。我会输出 0 1 相反。

        3
  •  1
  •   Josiah    14 年前

    我将从PHP脚本中以JSON boolean的形式返回true或false,并使用javascript的eval()函数将其计算为javascript变量。

        4
  •  1
  •   animuson    13 年前

    $.post("your_url/your_class/your_method", {  } ,
    function(data) {
    
        if(data) alert('true');
        else alert('false');
    
    }, "json")
    .error(function() { //alert("an AJAX error occurred!"); 
    });