我是新來的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)'來查看你發送的參數是否正在通過。但是,我會在開發控制檯中查看請求是否真的在製作。 –