Php 尝试使用ajax验证表单。相同的代码,不同的行为
我在我的开发网站上做一个项目,它的代码与我的产品代码完全相同 这是一个使用ajax的简单表单验证。以下是dispuser.php的代码:Php 尝试使用ajax验证表单。相同的代码,不同的行为,php,jquery,ajax,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) {
$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跟踪了响应,一切正常!当用户可用时返回yes,当用户不可用时返回no
我在:pp.atoanavida.com.br/registro.php和www.pesometro.com.br/registro.php中有完全相同的代码
您可以尝试使用用户AtonaVida。它不可用,而且两个数据库完全相同
我的问题:我的生产站点工作正常,在用户不可用时显示正确的消息。在具有相同代码的my dev站点上,脚本始终显示用户可用。由于某些原因,返回的数据\n不可用 就像在NewLine中一样,然后是no。 您可以修复这个php端,或者在ifdata=='no'之前简单地修剪javascript中的数据 像这样:
data = data.replace(/^\s+|\s+$/g,"");
发生了什么事?对不起,我忘了告诉你。在我的开发网站上,它总是说用户名是可用的,即使它不可用。我跟踪了firebug的反应,一切正常。如果用户不可用,但脚本在页面上显示用户可用,则响应为“否”。请确保数据库相同,然后返回的内容相同,我相信没有人可以为此提供帮助。为什么要混合使用$msgbox和getElementById等格式?submitBT.attr'disabled'、'disabled';并再次启用submitBT.attr'disabled',;谢谢我花了几个小时试图弄明白这一点,这是无法想象的。。你知道为什么它会重复/n吗?在再次感谢之前,你可能会有一个额外的换行符。我不知道包含会影响这一点。