셀렉트박스 선택한 값을 유지하기(?)

셀렉트박스 선택한 값을 유지하기(?)

QA

셀렉트박스 선택한 값을 유지하기(?)

본문

최근글의 제목을 셀렉트 박스로 받아오고 있습니다.

 

각 제목을 선택하면 해당 글로 이동을 하고 있는데, 기본적으로 항상 첫번째 제목이 표시되고 있습니다.

 

1번제목

2번제목

3번제목

-

-

-

 

있을때, 3번을 셀렉트하고 페이지 이동하면 3번제목이 셀렉트박스내에 남아있게하는 방법이 있을까요?

이 질문에 댓글 쓰기 :

답변 4

넘어오는 select 의 값을 if 문으로 체크하셔서 처리하세요.

예)


<select>
    <option value="1번제목"<?php if($select==='1번제목'){echo ' selected="selected"';}?>>1번제목</option>
    <option value="2번제목"<?php if($select==='2번제목'){echo ' selected="selected"';}?>>2번제목</option>
    <option value="3번제목"<?php if($select==='3번제목'){echo ' selected="selected"';}?>>3번제목</option>
</select>

여기서 $select 는 넘어오는 select의 변수값입니다.

옵션값이
<option value="<?php echo $list[$i]['href'];?>">



<?php echo $list[$i]['subject'];?>



</option>

이렇게 해서 각 게시글의 제목이 들어오고 있습니다. 이럴경우 어떻게 입력해야할까요?


<option value="<?php echo $list[$i]['href'];?>">
<?php echo $list[$i]['subject'];?>
</option>


여기에서 옵션의 value가 <?php echo $list[$i]['href'];?> 이므로
$list[$i]['href'] 의 값을 if문으로 걸러내면 됩니다.

예 - $prev_value은 db에서 가져온 값이나 이전 페이지에서 넘어온 값을 의미합니다.
대충 이런식으로 될거 같네요.

<?php
for($i=0; $i<count($list); $i++) {
$prev_value = !empty($_GET['select의 name']) ? $_GET['select의 name'] : $db의값;
?>
<option value="<?php echo $list[$i]['href'];?>"<?php if($list[$i]['href']===$prev_value){ echo ' selected="selected"';}?>>
<?php echo $list[$i]['subject'];?>
</option>
<?php } ?>

셀렉트하면 새창으로 열리면서 부모페이지가 리프레시가 되서 그런거 같은데

onchange 스크립트를 직접 넣으면 리프레시가 되지않게하면 셀렉트 부분이 선택된대로 그대로 있습니다. 

 


<select name="" onchange="window.open(this.options[this.selectedIndex].value,'_blank')">
<option value="링크URL#1">제목 #1</option>
<option value="링크URL#2">제목 #2</option>
<option value="링크URL#3">제목 #3</option>  
</select>

 

 

 

새창으로 뜨는건 onchange 옵션이 _blank로 되어 있어서 그렇습니다. 
이동된 페이지에서도 동일한 셀렉트 박스가 있는 상황이라면 

셀렉트 구문을 PHP 소스로 커스텀을 추가로 해주어야 됩니다. 
즉, 부모페이지에서 변수를 지정해서 이동페이지에서 그 변수값을 받아와서 셀렉트에 넣어주어야 됩니다. 

페이지 링크가 있으면 좀더 자세한 답변이 가능할것 같습니다. ~ 

답변을 작성하시기 전에 로그인 해주세요.
전체 66
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT