게시판의 제목을 셀렉트 박스로 구현...
본문
안녕하세요.
A(예약게시판)의 게시판에 예약처럼 제목을 B(상품명게시판) 게시판의 제목란에서 리스트를 셀렉트 형식으로 가져오고 있습니다.
아래의 소스처럼 하니 B게시판에서 잘 되고 있습니다.
그런데 B게시판의 제목들이 갯수가 많아지다보니 A게시판의 제목부분의 셀렉트박스 부분이 너무 길어져서 찾기가 불편하더라구요.... 그래서 B(상품명게시판)에 분류코드를 사용하는것으로해서 분류(가든뷰|오션뷰|시티뷰) 이렇게 분류를 만들어서 하고 있습니다.
그런데 B의 분류가 A 예약할때는 안나오더라구요. 혹시 A 예약 등록시 B에서 분류를 먼저 선택하면 두번째 셀렉트에서 가든뷰에 해당하는 리스트만 셀렉트에 나오게 하고 싶은데 분류 부분의 코드를 어떻게 넣어야 할가요? 도와주시면 감사하겠습니다.
<?php
$sql = "select wr_subject from g5_write_roomsubject ORDER BY wr_subject";
$result = sql_query($sql);
?>
<!--1번째 분류선택-->
<select>
<option>B게시판의 분류</option>
</select>
<!--2번째 제목선택-->
<select id="wr_subject" name="wr_subject" class="bo_w_select" required>
<option value="">---상품선택---</option>
<?php while ($row = sql_fetch_array($result)) {?>
<option value="<?php echo $row['wr_subject'] ?>" <?php echo ($row['wr_subject'] == $subject) ? " selected" : "";?>><?php echo $row['wr_subject'] ?></option>
<?php } ?>
</select>
답변 3
실시간으로 값을 가져 와야하니 ajax로 하셔야합니다.
단, 아래 코드는 글 작성시에만 적용되는 예시 코드입니다.
(글 수정시에는 B게시판 카테고리 값에 맞게 while 돌려서 게시글 옵션 불러오셔야합니다.)
편의상 A게시판을 test1 , B게시판은 test2라고 하겠습니다.
그리고 A게시판에서 B 게시판 카테고리를 저장할 필드를 wr_1로 하구요.
A게시판 write.skin.php 상단에
<?php
$sql = "SELECT `bo_category_list` FROM `g5_board` WHERE `bo_table` = 'test2' "; //test2 게시판의 카테고리를 가져옴
$row = sql_fetch($sql);
$ca_option = explode("|",$row['bo_category_list']);
foreach($ca_option as $val){
$cate_op .= "<option value = '".$val."' ".get_selected($wr_1, $val).">".$val."</option>";
}
?>
<select name="wr_1" id="wr_1" required>
<option value="">분류를 선택하세요</option>
<?php echo $cate_op ?>
</select>
<!--2번째 제목선택-->
<select id="wr_subject" name="wr_subject" class="bo_w_select" required>
</select>
<script>
$( document ).ready(function() {
$('#wr_1').change(function(e){
e.preventDefault(e);
$.ajax({
url:g5_url+'/ajax/cate.php',//php함수가 실행될 경로 및 파일
type: "post",
data: {ca_name : $("#wr_1 option:selected").val() },
success : function(data) {
if(data){
$("#wr_subject").html(data);
}else{
alert('결과가 없습니다');
}
}
});
});
});
</script>
그누보드 설치 폴더 최상단에 ajax폴더 만드시고 하단에 cate.php 폴더 생성후 파일 내용을 아래와 같이
<?php
include_once('../common.php');
if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER']))
exit('');
$data_result = "SELECT `wr_subject` FROM `g5_write_test2` WHERE `ca_name` = '".$_POST['ca_name']."' ";
$data_result = sql_query($data_result);
$sub_op ="<option value=''>---상품선택---</option>";
while ($row = sql_fetch_array($data_result)) {
$sub_op .= "<option value = '".$row['wr_subject']."' ".get_selected($subject,$row['wr_subject']).">".$row['wr_subject']."</option>";
}
echo $sub_op;
?>
이런식으로 한번 해보세요.
!-->!-->
이런 것들을 참고하셔서 만드시면 될 듯합니다.
크루지님과 Dessi님의 좋은 예시제공과 친절한 설명에 좋아요 누르고 갑니다