0

因此,我正在使用 Jquery 后包装器从我的页面运行脚本,并且在 chrome 调试器中发生以下情况:-

1) if the username is taken i'm getting `"taken"` 

2) else it echo's nothing. 

但是,我无法到达警报('我在这里');行似乎该if(data=="taken")语句从未运行或始终评估为false,但事实并非如此。我究竟做错了什么?

jQuery

 var flag;
    $.post('welcome/check_username',{childname: $('#name').val()}, function(data){
    if(data=="taken")
            {
                alert('im here');
                 return flag = true;
                  //tell user that the username already exists
                  }else{
                   return flag = false;
                      //username doesn't exist, do what you need to do
                       }
                       });

PHP

if ($this->Form_builder->check_unique_username($username, $childname))
{
     echo "taken";
}

4

3 回答 3

1

修剪东西总是好的。尝试

  if(data.trim()=="taken")
于 2013-08-14T08:15:52.830 回答
1

尝试这个:

var flag;
var result = $.post('welcome/check_username',{childname: $('#name').val()});
result.done(function( data )
{
    if(data=="taken")
    {
        alert('im here');
        return flag = true;
        //tell user that the username already exists
    }else{
        return flag = false;
        //username doesn't exist, do what you need to do
    }
});
于 2013-08-14T08:12:58.303 回答
1

查看代码,以下是我要检查的部分:

  1. 在 PHP 端,检查函数是否正确获取 $username 和 $password 中的正确值。您可以通过修改 PHP 文件来做到这一点,如下所示:

    if ($this->Form_builder->check_unique_username($username, $childname))
    {
     echo "taken";
    }
    else
    {
      echo $username." and ".$childname." is not taken";
    }
    
    1. 然后在 jQuery 端,在 if 语句之前,执行 console.log(data) 或 alert(data) 以查看返回的内容。也许,您正在通过 POST 方法发送数据,但服务器端脚本需要通过 GET 方法的参数。
于 2013-08-14T08:22:10.267 回答