我正在设计一个Web应用程序。在添加 ajax 之前,它工作正常。现在我想添加 ajax,但没有任何反应,因为第一页一次又一次地加载。请告诉我 ajax 没有响应的原因(没有错误消息没有新页面加载(。我的代码如下。h.php是一个简单的文件,说你好。
第一.php:
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Online library </title>
<link rel="stylesheet" type="text/css" href="CSS/style.css" />
<form method="post">
<div class="result"></div>
UserName:<input type="text" name="name" id="username"><br><br>
Password:<input type="password" name="password" id="password"><br><br>
<button id="loginn" type="submit" name="button" <strong>login</strong> </button>
</form>
<script type="text/javascript" src=""jquery-3.2.0.js""></script>
<script type="text/javascript">
$(document).ready(function(){
$("#loginn").submit(function(e){
var username=$("#username").val();
var password=$("#password").val();
var result=$('.result').val();
var dataString = 'username='+username+'&password='+password;
$.ajax({
type: "POST",
url: "log.php",
data: dataString,
success: function(responseText){
if(responseText==0) {
result.html('<span class="error">incorrect username</span>');
}
else if(responseText==1)
{
window.location="h.php";
}
else{
alert('error in query');
}
}
});
e.preventDefault();
});
});
</script>
</body>
</html>
日志.php:
<?php
include 'user.php';
$name=$_POST["username"];
$password=$_POST["password"];
$con=new users();
$con->login($name,$password);
?>
用户.php:
<?php
class users
{
public function constructs()
{
$con=mysqli_connect("localhost", "root", "") or die (mysqli_error());
mysqli_select_db($con,'online') or die(mysqli_error($con));
return $con;
}
function login($username, $password) {
$con=$this->constructs();
$rs = mysqli_query($con, "SELECT username, password FROM member WHERE username='$username' AND password='$password'");
if(mysqli_num_rows($rs)>0)
{
echo 1;
}
else {
echo 0;
}
}
?>
您将代码绑定到 jQuery 的 document.ready 函数,该函数在文档准备好呈现时立即运行您的代码,但我认为这只是问题的一部分。此外,请尝试在代码中的不同位置添加一些控制台.log行,以确保文档引用正常工作。
您粘贴的代码存在一些语法错误,尤其是您的用户.php文件(如果确实是直接复制/粘贴的(。即使文件可能无法打印任何结果,请尝试在浏览器中加载每个结果以查看是否存在语法错误。
您的 html 在第一个.php中的几个地方格式不正确。检查文档类型的位置,为
部分添加正确的结束标签,检查表单本身的格式(特别是登录按钮本身(这实际上是您代码的一部分吗?
<script type="text/javascript" src=""jquery-3.2.0.js""></script>
如果是这样,应该是
<script type="text/javascript" src="jquery-3.2.0.js"></script>
如果还有其他事情,请告诉我
您的代码中有很多错误,更不用说它非常不安全,正如评论所述。以下是您缺少的一些内容:
users.php
末尾的花括号- Jquery未正确包含在您拥有的索引文件中,并且会
" "
- 您正在侦听按钮而不是表单上的提交事件,请将其更改为单击事件
- 提交事件 dosent 内的结果 var 需要
val()
最后你不会看到查询的结果。
如果数据库设置正确,其余代码应该可以工作。
这是工作代码:
索引.php
$("#loginn").click(function(e){
var username=$("#username").val();
var password=$("#password").val();
var result=$('.result');
var dataString = 'username='+username+'&password='+password;
$.ajax({
type: "POST",
url: "log.php",
data: dataString,
success: function(responseText){
console.log(responseText);
if(responseText==0) {
$(result).html('<span class="error">incorrect username</span>');
}
else if(responseText==1)
{
window.location="h.php";
}
else{
alert('error in query');
}
},
fail: function(err) {
console.log(err);
}
});
e.preventDefault();
});
});
日志.php - 相同
用户.php - 末尾缺少大括号