【发布时间】:2019-06-19 14:00:40
【问题描述】:
我正在使用引导程序以及 foreach 循环在 div 中从 mysql 打印数据。每个 div 都有一个“Ordered”按钮,它应该更改数据库中的一些数据,并更改特定 div 的背景颜色。我使用 onclick 函数将 div 的 id 发送到 url 并重新加载页面。当我尝试使用函数内的引导类更改 div 的颜色时,它只会闪烁片刻并使用以前的颜色重新加载页面。
谁能看出我做错了什么?
window.addEventListener("load", function(){
let params = new URLSearchParams(location.search);
if(params.get("num")) {
<?php
$id = $_GET['num'];
$dbh = new PDO('mysql:host=...;dbname=...', '...', '...',[
PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC]);
$stmt = $dbh->prepare('UPDATE orders SET status = 1 WHERE id = ?');
$stmt->execute([$id]);
$result = $stmt->fetchAll();
?>
document.getElementById(num).style.backgroundColor = '#fcf3d4';
alert("after the page gets reloaded");
}
});
function change(num) {
var number = num;
alert("before page gets reloaded");
window.location.href = "http://ecohfood.com/login_success.php?num=" + number;
}
<div class="col-6" id="<?php echo $v['id']; ?>">
<div id="bottom">
<button type="button" id="b<?php echo $v['id']; ?>" class="btn btn-success" onclick="document.getElementById('<?php echo $v['id']; ?>').style.backgroundColor = '#fcf3d4';
change(<?php echo $v['id']; ?>);">Ordered</button>
<button type="button" class="btn btn-danger" onclick="del(<?php echo $v['id']; ?>)">Delete</button>
</div>
【问题讨论】:
-
"//connect with db and update information" - 这里没有真正显示 - 但需要注意的一点是它在页面刷新之后出现。
window.location.href =之后的所有内容都将被忽略。 -
当页面重新加载时,js、css和html再次加载。这就是你看到闪烁的原因。 onClick 事件尝试触发,因此它稍微改变了样式,但随后页面重新加载,所有内容都重置为其初始值,因为随着新加载的 html,js 和 css 重新加载。
标签: javascript jquery html css