수정할 때 select 에 value 값 나오게 하려고 합니다. 채택완료

안녕하세요. 항상 도움 받고 있습니다. wr_1 select 에서 값을 선택하면 어떤 값인지에 따라서 wr_2 select 에 출력되는 값이 다르게 작업을 했는데요. 이 경우에는 수정 페이지에서 value 값을 표시를 해야 하는데 어떻게 코딩을 해야하는지 모르겠습니다. 어떻게 해야 할까요? 코드는 아래와 같습니다. 

Copy
<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개

채택된 답변
+20 포인트

<script>

아래에 추가

Copy
<?php if ($w == 'u') { ?>
updateRoomOptions();
<?php } ?>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

알려주셔서 감사합니다~ 도움이 많이 되었습니다.

댓글을 작성하려면 로그인이 필요합니다.

다음은 $write 값이 있다고 가정하고 동작시키는 방법중 하나입니다.

Copy
<?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>
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고