html值不为';在php表单中,jQuery不会显示为可见
刚开始使用php,但在jQuery方面有点困难。查看了文档,我认为一切都应该正常工作,但是没有。在表单中输入错误的数据后,隐藏的值不会显示出来。在css中,我分配给#警告显示:无 index.phphtml值不为';在php表单中,jQuery不会显示为可见,php,html,jquery,Php,Html,Jquery,刚开始使用php,但在jQuery方面有点困难。查看了文档,我认为一切都应该正常工作,但是没有。在表单中输入错误的数据后,隐藏的值不会显示出来。在css中,我分配给#警告显示:无 index.php <?php require "../src/models/Database.php"; ?> <?php include_once "../src/controllers/DatabaseController.php"; ?> <
<?php require "../src/models/Database.php"; ?>
<?php include_once "../src/controllers/DatabaseController.php"; ?>
<?php session_start(); ?>
<?php include "../src/includes/header.php"; ?>
<?php
if (isset($_POST["submit"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$dbController = new DatabaseController();
$dbController->loginUser($username, $password);
}
?>
<div class="container main">
<h1 class="text-center">Web</h1>
<p class="text-center" id="warning">Incorrect username or password</p>
<div class="row login-page">
<form class="form" method="POST">
<input class="form-control" type="text" name="username" placeholder="Username" required>
<input class="form-control" type="password" name="password" placeholder="Password" required>
<input class="btn btn-success" type="submit" name="submit" value="Login">
</form>
</div>
</div>
<?php include "../src/includes/footer.php"; ?>
在html完成之前,您将包含jQuery脚本 因此,页面上还没有警告。没有显示任何内容 您可以在
之后包含脚本,也可以告诉jQuery在应用show()之前等待文档准备就绪:
如果您在脚本中添加console.log($(“#warning”).length)
您得到了什么值?为什么要使用JS来实现这一点?通过正常提交表单或AJAX,您如何调用您的操作?您是否检查了控制台,是否有任何错误?@HenryB当您得到0时,表示代码运行时id为warning
的元素不存在。请尝试$(document).ready(function(){$(“#warning”).show()})
作为旁注,您的代码容易受到SQL注入的攻击,尽管进行了转义-这是错误的。您应该切换到以完全阻止它。无论如何,回到主题:如果您登录时页面正在重新加载,那么您的函数应该只返回一个布尔值,指示登录是否成功。然后,您只需将错误消息包装在一个条件中,该条件检查该值,并且仅在段落失败时呈现该段落。使用jQuery来实现这一点是一种迂回的方法。
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Bootstrap starts -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<!-- Bootstrap ends -->
<!-- Css starts -->
<link rel="stylesheet" href="../src/styles/css/main.css">
<!-- Css ends -->
<!-- Jquery starts -->
<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
<!-- Jquery ends -->
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title id="title"></title>
</head>
<body>
<?php
class DatabaseController extends Database
{
public function loginUser($username, $password)
{
$connection = $this->connection;
$escapedUsername = mysqli_real_escape_string($connection, $username);
$escapedPassword = mysqli_real_escape_string($connection, $password);
$query = "SELECT * FROM users WHERE username = '$escapedUsername'";
$result = $this->findUser($query, $escapedPassword);
if ($result) {
// $_SESSION["authenticated"] = true;
echo "Logged in";
} else { ?>
<script>
$("#warning").show();
</script>
<?php
}
}
}
{
"require": {
"components/jquery": "^3.5"
}
}
$( document ).ready(function() {
$("#warning").show();
});