我是ajax,jQuery和JavaScript的新手,这对我自己来说更像是一种学习练习,可以学习一些技巧。我想离开作为单独页面的登录页面(即将数据发送到login.php然后重定向到登录部分的loginForm.php)并想要向下移动jQuery ajax路径。
我构建了我的索引页面如下:
<form id="login_form">
<h1>Login Form</h1>
<div>
<input type="text" placeholder="Username" required="" id="user_name" name="user_name"/>
</div>
<div>
<input type="password" placeholder="Password" required="" id="password" name="password"/>
</div>
<div class="err" id="add_err"></div>
<div>
<input type="submit" value="Log in" id="login" />
</div>
</form>
我已经设置了我的JavaScript:
$("#login").click(function(){
username=$("#user_name").val();
password=$("#password").val();
console.log(username + " " + password);
var info = {username:username, password:password};
console.log(info);
var sub = $.ajax({
async: false,
type: "POST",
url: "login.php",
data: info,
success: function(html){
if(html=='true')
{
$("#login_form").fadeOut("normal");
}
else
{
$("#add_err").html("Wrong username or password");
}
},
beforeSend:function()
{
$("#add_err").html("Loading...")
},
error: function(response) { console.log(response); }
});
console.log(sub);
return false;
});
当我console.log(info)
时,它在日志中告诉我这是一个对象,它有我需要发送的信息。所以我相信这部分到目前为止还可以。以下脚本是我的login.php:
<?php
include('secure.php'); // includes PDO database connection here
$username = $_POST['username'];
$password = $_POST['password'];
$sel = $db->prepare("SELECT * FROM aaUsers WHERE username='$username' AND password='$password'");
$sel->execute();
$count = $sel->rowCount();
if ( $count >= 1) {
echo "true";
}
else
{
echo "false";
}
?>
信息传递到此处然后运行此脚本,但是,当我console.log(sub)
时,我可以看到responseText = ""
并且这导致我的脚本进行故障转移。有人能告诉我我哪里出错了,我觉得我做的一切都正常,只是在某个地方我似乎出错了。
答案 0 :(得分:0)
您使用的是chrome还是firefox(使用firebug)?打开开发人员控制台,观察AJAX调用返回的内容。如果它在那里是空白的,那么当scrowler放好时,你的php是错误的。您还可以创建一个快速的非ajax测试表单,以便以两种方式发布这两个变量。
<html>
<body><form action=login.php method=post><input name=username/> <input name=password/> <input type=submit></form></body></html>
填写空白并点击提交。
答案 1 :(得分:0)
我的坏。
原来我打过电话:
$sel = $db->prepare(...);
而不是:
$sel = $conn->prepare(...);
现在工作正常,感谢您查看我的PHP脚本的建议。