페이지로 넘어온 값 체크 채택완료
<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" target="_blank">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개
</p>
<p><script language="javascript">
function toggleMenu() {
if (document.search_form.same.checked == true) {
layer_menu.style.display = 'none';
} else {
layer_menu.style.display = '';
}
}</p>
<p> </p>
<p>document.addEventListener('DOMContentLoaded', function () {
var params = new URLSearchParams(window.location.search);
if (params.get('same') == '1') {
toggleMenu();
}
}, false);
</script></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
하단에 넣으세요
<?php if(isset($_GET['same']) && $_GET['same']==1){?>
<script>
document.getElementById('layer_menu').style.display="none";
</script>
<?php } ?>
그런데 안보이게 하는게 목적이 아니라 체크된 상태 와 선택된 상태를 유지하는게 목적 아닌가요?
질문이 별로....
댓글을 작성하려면 로그인이 필요합니다.
오호 베르만님 때문에 URLSearchParams 객체를 보네요.
이게 겟변수로 넘어온 값을 판별할 수가 있군요.
무식하게 이럴 경우는 String(location.href).split("same=")[1].split("&")[0] 으로 써 왔는데 하나 배워 갑니다.
댓글을 작성하려면 로그인이 필요합니다.
제가 직접 페이지 안에서 확인을 안해 봐서리...
<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>
댓글을 작성하려면 로그인이 필요합니다.
A 페이지의 same 불린값을 B 페이지에 넘기려는 건가요?
그럼 폼으로 넝긴 값을 get 이나 post 처리하거나
아님 자바스크립트의 스토리지로 넘기거나 하면 됩니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
function toggleMenu() {
var same;
if (document.search_form.same.checked == true) {
layer_menu.style.display = 'none';
} else {
if(same == 1) {
layer_menu.style.display = 'none';
} else {
layer_menu.style.display = '';
}
}
}
</script>
var same;을 안하니 스크립트가 작동을 안하고요.
스크립트를 저렇게 수정해도 [또는, 그리고] 셀렉트 박스가 기본으로 보여요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인