尝试使用ajax验证表单。相同的代码,不同的行为

时间:2011-06-23 18:02:49

标签: php jquery ajax

我正在开发我的开发网站上的一个项目,该项目的代码与我的生产代码完全相同。

使用ajax进行简单的表单验证。这是dispuser.php的代码:

$username = protect($_POST['user_name']);
$dispuser = new user();
$dispuser->username = $username;
$res = $dispuser->get("all");
$num = mysql_num_rows($res);

if ($num>0)
{
    echo "no";
}
else
{
    echo "yes";
}

这是javascript代码:

$(document).ready(function()
{
    $("#username").blur(function()
    {
        $("#msgbox").removeClass().addClass('messagebox').text('Verificando...').fadeIn("slow");
        $.post("./dispuser.php",{ user_name:$(this).val() } ,function(data)
        {
            if(data=='no')
            {   
                document.getElementById("submitBT").disabled = true;
                $("#msgbox").fadeTo(200,0.1,function()
                { 
                    $(this).html('Not available').addClass('messageboxerror').fadeTo(900,1);
                });     
            }
            else
            {
                $("#msgbox").fadeTo(200,0.1,function()
                { 
                    document.getElementById("submitBT").disabled = false;   
                    $(this).html('Available!').addClass('messageboxok').fadeTo(900,1);           
                });
            }
        });
    });
});

这是html代码:

<td><label for="username">Usuário: </label></td>
<td><input type="text" name="username" id="username" /></td>
<td><span id="msgbox" style="display:none; no-padding;"></span></td>

我已经用firebug跟踪了回复,一切正常! (当用户可用时返回“是”,不可用时返回“否”。

我在pp.atoanavida.com.br/registro.phpwww.pesometro.com.br/registro.php

中使用完全相同的代码

您可以尝试使用“atoanavida”用户。它不可用,两个数据库完全相同。

我的问题:我的生产网站工作正常,当用户/不可用时显示正确的消息。在具有相同代码的开发站点上,脚本始终显示“用户可用”。

1 个答案:

答案 0 :(得分:2)

由于某种原因,返回的数据是“\ nNo” 就像在NewLine然后没有。 您可以在if(data =='no')...

之前修复此php端或简单地修改javascript中的数据 像这样:

data = data.replace(/^\s+|\s+$/g,"");