페이지로 넘어온 값 체크

페이지로 넘어온 값 체크

QA

페이지로 넘어온 값 체크

답변 6

본문

<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';

}

맞겠는지...

<script language="javascript">
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;을 안하니 스크립트가 작동을 안하고요.
스크립트를 저렇게 수정해도 [또는, 그리고] 셀렉트 박스가 기본으로 보여요.

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 } ?>

 

그런데 안보이게 하는게 목적이 아니라 체크된 상태 와 선택된 상태를 유지하는게 목적 아닌가요?

질문이 별로....

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,662
© SIRSOFT
현재 페이지 제일 처음으로