<?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>
ので、私はセッション変数に格納する$_GET
変数を使用することができ、今私は、クエリ文字列にそれを追加しようとしている値を割り当てるには、セッションパラメータのdiv要素でクリックなぜJavaScript関数の実行後にクエリ文字列パラメータが追加されるのですか?私は色を保存しようとしています
<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>
をクリックするとすぐに、背景色が分割されて実行され、デフォルトの白い背景に戻り、クエリ文字列が関数の実行後に追加されます。
解決策だけでなく、これが発生する理由を説明してください。
しかし、私はPHPで#のクエリ文字列パラメータを取得しない方法よりを使用する必要がありますか? – HVenom
私はあなたがミックスインのコンセプトだと思います。もしあなたがPHPでvar色を保存したいのであれば、これを達成するためにフルページをリロードする必要はありません。最善の方法は、それを保存する外部ページへのajax呼び出しを行うことです。したがって、ユーザーエクスペリエンスは、リフレッシュしなくてもずっと良いでしょう。 –