페이지로 넘어온 값 체크
본문
<script language="javascript">
function toggleMenu() {
if (document.search_form.same.checked == true) {
layer_menu.style.display = 'none';
} else {
layer_menu.style.display = '';
}
}
</script>
<input type ="checkbox" name='same' value='1' onclick="javascript:toggleMenu();">
<span id="layer_menu">레이어 메뉴</span>
http://linux2021.cafe24.com/board/index.php?code=board&inc=view&no=140&num=-16
여기에서 조건검색 체크박스를 선택하고 검색하면
다음 페이지에서 [또는, 그리고] 셀렉트박스가 안보이게 하고 싶어요.
그리고 다시 조건검색 체크박스를 선택하면 [또는, 그리고] 셀렉트박스가 보이게 하고 싶어요.
자바스크립트에서 checkbox(input name=same)를 체크하고 index.php 같은 페이지로 넘어가요.
그럼 same값이 1이죠.
자바스크립트에서 same이 1이면
layer_menu.style.display = '';
되게 자바스크립트를 수정하려고 하는데요.
어떻게 수정하면 될까요?
답변 6
<script language="javascript">
function toggleMenu() {
if (document.search_form.same.checked == true) {
layer_menu.style.display = 'none';
} else {
layer_menu.style.display = '';
}
}
document.addEventListener('DOMContentLoaded', function () {
var params = new URLSearchParams(window.location.search);
if (params.get('same') == '1') {
toggleMenu();
}
}, false);
</script>
if(same == 1) {
layer_menu.style.display = 'none';
}
맞겠는지...
A 페이지의 same 불린값을 B 페이지에 넘기려는 건가요?
그럼 폼으로 넝긴 값을 get 이나 post 처리하거나
아님 자바스크립트의 스토리지로 넘기거나 하면 됩니다.
제가 직접 페이지 안에서 확인을 안해 봐서리...
<input type="image" src="img/search.gif" value="검색" ......>
를 아래처럼 아이디를 하나 주고요,
<input id="myBtn" type="image" src="img/search.gif" value="검색"......>
문서 가장 하단부에 아래의 스크립트를 첨가하면 아마도 가능할 듯요.
<script>
myBtn.onmousedown = function() {
if (layer_menu.style.display == "none") sessionStorage["layer_menu"] = "none";
}
if (sessionStorage["layer_menu"] == "none") layer_menu.style.display = sessionStorage["layer_menu"];
</script>
오호 베르만님 때문에 URLSearchParams 객체를 보네요.
이게 겟변수로 넘어온 값을 판별할 수가 있군요.
무식하게 이럴 경우는 String(location.href).split("same=")[1].split("&")[0] 으로 써 왔는데 하나 배워 갑니다.
하단에 넣으세요
<?php if(isset($_GET['same']) && $_GET['same']==1){?>
<script>
document.getElementById('layer_menu').style.display="none";
</script>
<?php } ?>
그런데 안보이게 하는게 목적이 아니라 체크된 상태 와 선택된 상태를 유지하는게 목적 아닌가요?
질문이 별로....