수정할 때 select 에 value 값 나오게 하려고 합니다.
본문
안녕하세요. 항상 도움 받고 있습니다. wr_1 select 에서 값을 선택하면 어떤 값인지에 따라서 wr_2 select 에 출력되는 값이 다르게 작업을 했는데요. 이 경우에는 수정 페이지에서 value 값을 표시를 해야 하는데 어떻게 코딩을 해야하는지 모르겠습니다. 어떻게 해야 할까요? 코드는 아래와 같습니다.
!-->
<div class="form-group">
<label class="col-sm-2 control-label" for="wr_1">호텔선택<strong class="sound_only">필수</strong></label>
<div class="col-sm-4">
<select name="wr_1" id="wr_1" style="width:100%;height:30px; line-height:30px;" onchange="updateRoomOptions()">
<option value="선택" <?php echo ($write['wr_1'] == "") ? " selected" : "";?>>선택</option>
<option value="오카다" <?php echo ($write['wr_1'] == "오카다") ? " selected" : "";?>>오카다</option>
<option value="베이타워" <?php echo ($write['wr_1'] == "베이타워") ? " selected" : "";?>>솔레어 리조트 카지노 - 베이타워</option>
<option value="스카이 타워" <?php echo ($write['wr_1'] == "스카이 타워") ? " selected" : "";?>>솔레어 리조트 카지노 - 스카이 타워</option>
<option value="마닐라 COD" <?php echo ($write['wr_1'] == "마닐라 COD") ? " selected" : "";?>>마닐라 COD</option>
<option value="마닐라 메리어트 호텔" <?php echo ($write['wr_1'] == "마닐라 메리어트 호텔") ? " selected" : "";?>>마닐라 메리어트 호텔</option>
<option value="쉐라톤 마닐라 호텔" <?php echo ($write['wr_1'] == "쉐라톤 마닐라 호텔") ? " selected" : "";?>>쉐라톤 마닐라 호텔</option>
<option value="호텔 오쿠라 마닐라" <?php echo ($write['wr_1'] == "호텔 오쿠라 마닐라") ? " selected" : "";?>>호텔 오쿠라 마닐라</option>
<option value="힐튼 마닐라 호텔" <?php echo ($write['wr_1'] == "힐튼 마닐라 호텔") ? " selected" : "";?>>힐튼 마닐라 호텔</option>
</select>
</div>
<label class="col-sm-2 control-label" for="wr_2">룸 종류<strong class="sound_only">필수</strong></label>
<div class="col-sm-4">
<select name="wr_2" id="wr_2" style="width:100%;height:30px; line-height:30px;">
</select>
</div>
</div>
<script>
function updateRoomOptions() {
var hotelSelect = document.getElementById('wr_1');
var roomSelect = document.getElementById('wr_2');
roomSelect.innerHTML = '';
switch (hotelSelect.value) {
case '오카다':
addOption(roomSelect, '디럭스룸 킹');
addOption(roomSelect, '디럭스룸 트윈');
addOption(roomSelect, '그랜드 디럭스 킹');
addOption(roomSelect, '주니어 스위트');
addOption(roomSelect, '프리미엄 스위트 킹');
addOption(roomSelect, '프리미엄 스위트 더블');
addOption(roomSelect, '이그제큐티브 스위트 킹');
addOption(roomSelect, '이그제큐티브 스위트 더블');
break;
case '베이타워':
addOption(roomSelect, '디럭스룸 킹');
addOption(roomSelect, '디럭스룸 더블');
addOption(roomSelect, '그랜드 디럭스 더블');
addOption(roomSelect, '코너 그랜드 디럭스 킹');
addOption(roomSelect, '프리미어 스위트');
addOption(roomSelect, '프레스티지 스위트 베이');
addOption(roomSelect, '그랜드 스위트');
break;
case '스카이 타워':
addOption(roomSelect, '스카이 스튜디오 킹');
addOption(roomSelect, '스카이 스튜디오 퀸');
addOption(roomSelect, '프레스티지 스위트 스카이');
addOption(roomSelect, '시그니처 스위트');
addOption(roomSelect, '스카이 스위트');
break;
case '마닐라 COD':
addOption(roomSelect, '미정');
break;
case '마닐라 메리어트 호텔':
addOption(roomSelect, '디럭스룸 킹');
addOption(roomSelect, '디럭스룸 더블');
break;
case '쉐라톤 마닐라 호텔':
addOption(roomSelect, '디럭스룸 킹');
addOption(roomSelect, '디럭스룸 더블');
addOption(roomSelect, '1 베드룸 주니어 스위트');
break;
case '호텔 오쿠라 마닐라':
addOption(roomSelect, '디럭스룸 킹');
addOption(roomSelect, '디럭스룸 트윈');
break;
case '힐튼 마닐라 호텔':
addOption(roomSelect, '게스트룸 킹');
addOption(roomSelect, '게스트룸 더블');
break;
}
}
답변 2
<script>
아래에 추가
<?php if ($w == 'u') { ?>
updateRoomOptions();
<?php } ?>
다음은 $write 값이 있다고 가정하고 동작시키는 방법중 하나입니다.
<?php
$write = [
'wr_1' => '베이타워',
'wr_2' => '코너 그랜드 디럭스 킹',
];
?>
<div class="form-group">
<label class="col-sm-2 control-label" for="wr_1">호텔선택<strong class="sound_only">필수</strong></label>
<div class="col-sm-4">
<select name="wr_1" id="wr_1" style="width:100%;height:30px; line-height:30px;" onchange="updateRoomOptions()">
<option value="선택" <?php echo ($write['wr_1'] == "") ? " selected" : "";?>>선택</option>
<option value="오카다" <?php echo ($write['wr_1'] == "오카다") ? " selected" : "";?>>오카다</option>
<option value="베이타워" <?php echo ($write['wr_1'] == "베이타워") ? " selected" : "";?>>솔레어 리조트 카지노 - 베이타워</option>
<option value="스카이 타워" <?php echo ($write['wr_1'] == "스카이 타워") ? " selected" : "";?>>솔레어 리조트 카지노 - 스카이 타워</option>
<option value="마닐라 COD" <?php echo ($write['wr_1'] == "마닐라 COD") ? " selected" : "";?>>마닐라 COD</option>
<option value="마닐라 메리어트 호텔" <?php echo ($write['wr_1'] == "마닐라 메리어트 호텔") ? " selected" : "";?>>마닐라 메리어트 호텔</option>
<option value="쉐라톤 마닐라 호텔" <?php echo ($write['wr_1'] == "쉐라톤 마닐라 호텔") ? " selected" : "";?>>쉐라톤 마닐라 호텔</option>
<option value="호텔 오쿠라 마닐라" <?php echo ($write['wr_1'] == "호텔 오쿠라 마닐라") ? " selected" : "";?>>호텔 오쿠라 마닐라</option>
<option value="힐튼 마닐라 호텔" <?php echo ($write['wr_1'] == "힐튼 마닐라 호텔") ? " selected" : "";?>>힐튼 마닐라 호텔</option>
</select>
</div>
<label class="col-sm-2 control-label" for="wr_2">룸 종류<strong class="sound_only">필수</strong></label>
<div class="col-sm-4">
<select name="wr_2" id="wr_2" style="width:100%;height:30px; line-height:30px;">
</select>
</div>
</div>
<script>
function updateRoomOptions(roomSelectValue = '') {
var hotelSelect = document.getElementById('wr_1');
var roomSelect = document.getElementById('wr_2');
roomSelect.innerHTML = '';
switch (hotelSelect.value) {
case '오카다':
addOption(roomSelect, '디럭스룸 킹', roomSelectValue);
addOption(roomSelect, '디럭스룸 트윈', roomSelectValue);
addOption(roomSelect, '그랜드 디럭스 킹', roomSelectValue);
addOption(roomSelect, '주니어 스위트', roomSelectValue);
addOption(roomSelect, '프리미엄 스위트 킹', roomSelectValue);
addOption(roomSelect, '프리미엄 스위트 더블', roomSelectValue);
addOption(roomSelect, '이그제큐티브 스위트 킹', roomSelectValue);
addOption(roomSelect, '이그제큐티브 스위트 더블', roomSelectValue);
break;
case '베이타워':
addOption(roomSelect, '디럭스룸 킹', roomSelectValue);
addOption(roomSelect, '디럭스룸 더블', roomSelectValue);
addOption(roomSelect, '그랜드 디럭스 더블', roomSelectValue);
addOption(roomSelect, '코너 그랜드 디럭스 킹', roomSelectValue);
addOption(roomSelect, '프리미어 스위트', roomSelectValue);
addOption(roomSelect, '프레스티지 스위트 베이', roomSelectValue);
addOption(roomSelect, '그랜드 스위트', roomSelectValue);
break;
case '스카이 타워':
addOption(roomSelect, '스카이 스튜디오 킹', roomSelectValue);
addOption(roomSelect, '스카이 스튜디오 퀸', roomSelectValue);
addOption(roomSelect, '프레스티지 스위트 스카이', roomSelectValue);
addOption(roomSelect, '시그니처 스위트', roomSelectValue);
addOption(roomSelect, '스카이 스위트', roomSelectValue);
break;
case '마닐라 COD':
addOption(roomSelect, '미정', roomSelectValue);
break;
case '마닐라 메리어트 호텔':
addOption(roomSelect, '디럭스룸 킹', roomSelectValue);
addOption(roomSelect, '디럭스룸 더블', roomSelectValue);
break;
case '쉐라톤 마닐라 호텔':
addOption(roomSelect, '디럭스룸 킹', roomSelectValue);
addOption(roomSelect, '디럭스룸 더블', roomSelectValue);
addOption(roomSelect, '1 베드룸 주니어 스위트', roomSelectValue);
break;
case '호텔 오쿠라 마닐라':
addOption(roomSelect, '디럭스룸 킹', roomSelectValue);
addOption(roomSelect, '디럭스룸 트윈', roomSelectValue);
break;
case '힐튼 마닐라 호텔':
addOption(roomSelect, '게스트룸 킹', roomSelectValue);
addOption(roomSelect, '게스트룸 더블', roomSelectValue);
break;
}
}
function addOption(el, value, selected = '') {
if (el.options[el.options.length] == null) {
el.options[el.options.length] = new Option(value, value, false, (value == selected));
}
}
var wr_2_val = '';
<?php
if (empty($write['wr_2']) == false) {
echo "wr_2_val = '{$write['wr_2']}';";
}
?>
updateRoomOptions(wr_2_val);
</script>
답변을 작성하시기 전에 로그인 해주세요.