【问题标题】:AJAX username AvailabilityAJAX 用户名可用性
【发布时间】:2013-06-23 07:19:49
【问题描述】:

我已编写此代码以检查电子邮件的可用性。

var email = $('#email_reg').val();
       if(email && email.length > 0)
       {
         if(!isValidEmailAddress(email))
         {
           isValid = false;
           $('#msg_email').html('Email is invalid').show();           
         }
         else
         {jQuery.ajax({
            type: 'POST',
            url: 'check_username.php',
            data: 'email='+ email ,
            cache: false,
            success: function(response){
                if(response == 1){
                    $('#msg_email').html('Email already Exists').show();
                    isValid=false;
                }
                else {
                    $('#msg_email').html('').hide();
                }
            }
        });

         }
       }
       else
       {
         isValid = false;
         $('#msg_email').html('Please enter email').show();
       }

php代码是

<?php
require_once('Connections/connection.php');
$username= mysql_real_escape_string($_REQUEST["email"]);

if (!$con)
{
    echo 0;
}
else {
    mysql_select_db($database_connection, $connection);
    $result = mysql_query("SELECT * FROM vendor_logiin WHERE username='" . $username . "'");
    $num = mysql_num_rows($result);
echo $num; //it will always return 1 or 0 since we do not allow multiple users with the same user name.
}
mysql_close();
?>

现在所有其他人都可以正常工作,就像将其留空并提供错误的电子邮件格式一样。但问题是当我提供一个已经存在的电子邮件 ID 时。它没有给出错误。 我不知道出了什么问题。

【问题讨论】:

  • 你从服务器得到什么响应?在 AJAX 成功回调中执行 console.log(response)
  • vendor_logiin 是不是有 2x " i "?
  • 这个表名是否正确:vendor_logiin。如果不是,查询将失败,无论您从服务器返回什么,它都不太可能是 1 或 0。

标签: php jquery ajax


【解决方案1】:

由于您没有指定 dataType,因此响应可能被视为文本或 html,在这种情况下,将比较作为字符串进行比较可能是明智之举:

if (response == "1") {...}

而不是数字。如果您将其作为数字进行比较,则使用parseInt(response, 10) == 1

【讨论】:

  • 我猜问题出在 jquery 代码中。因为在所有情况下它都不会出错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 2015-02-16
  • 2013-07-28
  • 2010-10-09
  • 2014-04-27
  • 1970-01-01
相关资源
最近更新 更多