我是使用Javascript的新手,我想要做的是提交一个用户名和密码到一个PHP页面,然后检查它们是否存在于数据库中,如果它们加载不同的页面。php&ajax返回错误结果
此刻,当我提交表单时,它返回false值。但是,如果我将值添加到php页面,它将返回true。
所以我认为我必须有一个问题之间的Ajax和PHP,但我不明白我要去哪里错了,所以任何建议,将不胜感激。
当我运行在Chrome开发者工具的代码中,控制台显示此警告:
event.returnValue
已被弃用。请使用标准event.preventDefault()
代替。
但我不确定它与Google搜索有什么关系,似乎这只是一个警告,但我没有看到任何其他警告。
HTML表单
<label id="errorMessage"></label>
<form method="post" class="login">
<input name="username" type="text" placeholder="Username"/>
<input name="password" type="password" placeholder="Password"/>
<input type="submit" name="login" class="login" value="Login" id="orange"/>
</form>
阿贾克斯
$(document).ready(function(){
$('form.login').submit(function() {
var username = $(this).find('.username').attr('value');
var password = $(this).find('.password').attr('value');
// ...
$.ajax({
type: "POST",
url: "login.php",
data: "username="+ username +"& password="+ password,
success: function(response){
if(response == 'true')
{
window.location.href='main.html';
}
else
{
$("#errorMessage").html(response);
}
}
});
return false;
});
});
PHP
$username = mysql_real_escape_string($_POST['username']);
$password = md5(mysql_real_escape_string($_POST['password']));
if(!empty($username) && !empty($password))
{
$result = mysql_query("SELECT * FROM users WHERE username='$username' and password ='$password'");
$num_rows01 = mysql_num_rows($result);
if($num_rows01 === 1)
{
echo 'true';
}
else
{
echo 'false';
}
}
你试图缩小你的问题?请分别测试每个片段,使用Chrome/Firefox调试工具,显示报告/读取日志等,以找出哪些代码段无法正常工作 –
谢谢,我已经尝试过通过手动添加表单数据并返回true的php代码,所以我想我需要尝试你所说的并检查窗体和ajax。欢呼 –
尝试更改输入类型从提交到按钮...并在jquery。提交到.click;) – Hackerman