我是新来的JS/AJAX/PHP,我试图让最简单的登录页面:可能出错的Ajax调用
HTML和JS/AJAX
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
<script type="text/javascript" src="jquery-3.2.0.min.js"></script>
<script type="text/javascript">
function login() {
if ($("#username").val() === "" && $("#psw").val() === ""){
alert("Username and Password required")
}else{
$.ajax({
type: "GET",
url: "login.php",
data: "username=" + $("#username").val() + "&password=" + $("#psw").val(),
dataType: "html",
success: function (responseText) {
if (responseText === 0){
alert("x");
}else if (responseText === 1){
alert("y");
}else{
alert("z");
}
}
});
}
}
</script>
</head>
<body>
<form id="form">
<h1>Login Page</h1>
<fieldset>
<legend>Login</legend>
<strong>Username</strong>
<input type="text" name="username" id="username" placeholder="min. 5 characters" />
<strong>Password</strong>
<input type="password" name="psw" id="psw" placeholder="min. 8 characters" />
<br>
<input type="submit" name="submit" value="LOGIN" onclick="login()" />
</fieldset>
</form>
</body>
</html>
PHP
<?php
if (isset($_REQUEST['username'])) {
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$connection = mysqli_connect("localhost", "root", "");
$db = mysqli_select_db($connection, "login_esercizio");
$query = "SELECT * FROM users WHERE username = '$username'";
$data = mysqli_query($connection, $query);
$row = mysqli_num_rows($data);
if ($row <= 0){
echo 0;
}else{
echo 1;
}
}
正如您所看到的,这是一个简单的AJAX调用。 我试图理解为什么这段代码不工作,但我无法弄清楚。 MySQL正在工作,PhpStorm有解释器,一切都很好。 我做了一个选择,看看MySQL里面是否有数据,就有它。
我认为AJAX调用有问题,但我无法弄清楚,因为我不知道/看到问题。
告诉我,如果我必须更清楚,我在这里很新,也为我的英语感到抱歉。
看在浏览器上的开发者控制台,特别是JS控制台和网络选项卡 – Steve
我也会尝试'var_dump($ _ REQUEST)'来查看你发送的参数是否正在通过。但是,我会在开发控制台中查看请求是否真的在制作。 –