[英]Make HTML message disappear
有人能告诉我如何在几秒钟后使消息消失吗?
$msg = '<h4 class="col-12 text-center mb-3 text-success">Sikeres rögzítés!</h4>';
收到 POST 后,它会留在那里,我需要重新加载才能使其消失。
谢谢您的帮助。
这必须在客户端(即在 javascript 中)完成,因为 PHP 在响应响应后已经完成(并且 PHP 仅在服务器端工作)。
这是一个建议的算法(未经测试的伪代码):
在 PHP 方面,将类autovanish
(或任何你想要的)添加到你想要在几秒钟后自动消失的元素。
$msg = '<h4 class="autovanish col-12 text-center mb-3 text-success">Sikeres rögzítés!</h4>';
然后,让一个 javascript 函数一直运行:
function autovanish(){
const avDivs = document.getElementsByClassName('autovanish');
if (avDivs.length){
setTimeout(() => {
avDivs[0].remove();
}, 3000); //removes the element after 3000ms
}
setTimeout(() => {autovanish();}, 500); //re-run every 500ms
}
如果你不是一个 js 人,你需要在avDivs
之后的[0]
因为getElementsByClassName
返回一个集合,而不是一个字符串。
如果您需要比此伪代码更多的帮助,请在评论中提问。
// Adatbázis csatlakozás
require_once 'php/database.php';
// Bejelentkezés vizsgálat
require_once 'php/logincheck.php';
// HTML szerkezet eleje
$title = 'Főoldal';
require_once 'components/htmltop.php';
// Navigációs sáv
require_once 'components/navbar.php';
$msg = '';
if(isset($_POST['rogzit_in'])) {
if(isset($_POST['barcode'])) {
$barcode = $_POST['barcode'];
if(strlen($barcode) < 0) {
$msg = '<h4 class="col-12 text-center mb-3 text-danger">Nem megfelelő a vonalkód beolvasása!</h4>';
} else {
$sql_beszuras = "INSERT INTO log_in(barcode) VALUES ('$barcode')";
if(mysqli_query($dbCon, $sql_beszuras)) {
$msg = '<h4 class="autovanish col-12 text-center mb-3 text-success">Sikeres rögzítés!</h4>';
} else {
$msg = '<h4 class="autovanish col-12 text-center mb-3 text-danger">Sikertelen rögzítés!</h4>';
}
}
} else {
$msg = '<h4 class="autovanish col-12 text-center mb-3 text-danger">Hiányzó adat a POST kérésből!</h4>';
}
}
if(isset($_POST['rogzit_out'])) {
if(isset($_POST['barcode'])) {
$barcode = $_POST['barcode'];
if(strlen($barcode) < 0) {
$msg = '<h4 class="col-12 text-center mb-3 text-danger">Nem megfelelő a vonalkód beolvasása!</h4>';
} else {
$sql_beszuras = "INSERT INTO log_out(barcode) VALUES ('$barcode')";
if(mysqli_query($dbCon, $sql_beszuras)) {
$msg = '<h4 class="autovanish col-12 text-center mb-3 text-success">Sikeres rögzítés!</h4>';
} else {
$msg = '<h4 class="autovanish col-12 text-center mb-3 text-danger">Sikertelen rögzítés!</h4>';
}
}
} else {
$msg = '<h4 class="autovanish col-12 text-center mb-3 text-danger">Hiányzó adat a POST kérésből!</h4>';
}
}
?>
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
<link rel="stylesheet" href="css/style.css" media="screen">
<title><?=$title?> - KARSOL</title>
</head>
<body>
<div class="col-6 mx-auto">
<form action="" method="post" class="col-12 mx-auto mb-3 form-group bg-white shadow p-3 text-center">
<h4 class="col-12 text-center my-3">Gyártás rögzítés</h4>
<label>Vonalkód:</label>
<input type="text" name="barcode" class="form-control mb-3 col-6 mx-auto" required autocomplete="off">
<button type="submit_in" name="rogzit_in" class="btn btn-dark">Belépés</button>
<button type="submit_out" name="rogzit_out" class="btn btn-dark">Kilépés</button>
<?=$msg?>
</form>
</div>
<script>
document.addEventListener('DOMContentLoaded',() => {
autovanish();
}
function autovanish(){
const avDivs = document.getElementsByClassName('autovanish');
if (avDivs.length){
setTimeout(function(){
avDivs[0].remove();
}, 3000); //removes the element after 3000ms
}
setTimeout(() => {autovanish();}, 500); //re-run every 500ms
}
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
</body>
</html>```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.