php - html 值在 php 表单中不显示为 jQuery 可见
问题描述
刚开始使用 php 并且有点挣扎于 jQuery。浏览了文档,在我看来一切都应该正常工作,但是没有。在表单中输入错误的数据后,隐藏的值不可见。在CSS中我分配给#warning display:none
索引.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"; ?>
头文件.php
<!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
<?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
}
}
}
作曲家.json
{
"require": {
"components/jquery": "^3.5"
}
}
解决方案
在 html 完成之前,您将包含 jQuery 脚本。
因此,#warning
页面上还没有。什么都没有显示。
您应该在之后包含您的脚本,<p class="text-center" id="warning">
或者您可以告诉 jQuery 等到文档准备好后再应用show()
:
$( document ).ready(function() {
$("#warning").show();
});
推荐阅读
- python - Tensorflow Keras中的水印二进制分类器卡住了
- android - Android Studio 中的 Koin Libraray 问题
- excel - 我想在 excel vba 中创建 21 个表,但我得到 Argument not optional 错误
- php - Laravel 在 POST 方法中从 multipart/form-data 获取请求
- pandoc - 如何防止 pandoc 插入
- r - 具有相同 CRS 但裁剪时无输出的 Shapefile 和 Raster
- r - 如果表1中的日期早于表2中的日期,则R函数连接两个表
- web-services - 来自 QlikView 扩展对象的 jquery ajax 请求发送 OPTION 而不是 GET(在 Fiddler 中检查)
- javascript - 如何推进猫鼬搜索?
- mule4 - 比较两个变量并计算第三个变量并将其附加到 mule4 中的现有变量