我正在设计一个Web应用程序。在添加ajax之前,它工作正常。现在我想添加ajax但没有任何事情发生同样的第一页一次又一次加载。请告诉我ajax没有响应的原因(没有错误消息没有新页面加载)。我的代码如下。 h.php是一个简单的文件,打招呼。
first.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>
log.php:
<?php
include 'user.php';
$name=$_POST["username"];
$password=$_POST["password"];
$con=new users();
$con->login($name,$password);
?>
user.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;
}
}
?>
答案 0 :(得分:0)
你将你的代码绑定到jQuery中的document.ready函数,它在文档准备渲染时立即运行你的代码,但这只是我认为的问题的一部分。还可以尝试在代码中的各个位置添加一些console.log行,以检查文档引用是否正常工作。
您粘贴的代码中存在一些语法错误,尤其是您的user.php文件(如果确实是直接复制/粘贴的话)。即使文件可能无法打印任何结果,请尝试在浏览器中加载每个文件以查看是否存在语法错误。
你的first.php中的几个地方的html格式错误。检查您的doctype的位置,为&lt; head&gt;添加正确的结束标记。部分,检查表单本身的格式(特别是登录按钮本身)
这实际上是你代码的一部分吗?
<script type="text/javascript" src=""jquery-3.2.0.js""></script>
如果是的话应该是
<script type="text/javascript" src="jquery-3.2.0.js"></script>
让我知道是否还有其他事情
答案 1 :(得分:0)
您的代码中有很多错误,更不用说它的评论已经说明非常不安全了。以下是您缺少的一些内容:
users.php
" "
val()
,最后您不会看到查询结果的结果。假设数据库设置正确,其余代码应该可以正常工作。
以下是工作代码:
的index.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();
});
});
log.php - 相同的
user.php - 最后缺少大括号