【发布时间】:2017-02-21 12:58:59
【问题描述】:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<h2 id="title">Choose a background Theme</h2>
<div id="black"></div>
<div id="orange"></div>
<div id="brown"></div>
</body>
</html>
我现在正在尝试将单击的颜色存储在会话参数中的 div 中,以分配我尝试将其附加到查询字符串的值,以便我可以使用 $_GET 变量将其存储在会话变量中
<script>
var c_selected;
window.onload = function () {
document.getElementById("black").addEventListener("click", function () {
setBackground("black");
});
document.getElementById("orange").addEventListener("click", function () {
setBackground("orange");
});
document.getElementById("brown").addEventListener("click", function () {
setBackground("brown");
});
};
function setBackground(scolor) {
location.href = (location.href.split("?").length > 1) ? location.href.split("?")[0] + "?color=" + scolor : "?color=" + scolor;
document.body.style.backgroundColor = scolor
document.getElementById(scolor).style.border = "thick solid white";
if (c_selected) {
document.getElementById(c_selected).style.border = "none";
}
document.getElementById("title").style.color = "white";
<?php $_SESSION['THEME_COLOR'] = isset($_GET['color']) ? $_GET['color'] : "white"; ?>
c_selected = scolor;
}
</script>
但是现在只要我点击任何<div>,背景颜色就会在瞬间执行,任何返回到默认的白色背景,并且只有在函数执行后才会附加查询字符串。
请解释发生这种情况的原因,而不仅仅是解决方案。
【问题讨论】:
标签: javascript php query-string