multiple select 관련질문
본문
이렇게 multiple select를 구혔했는데요.
write에서 multiple select를 이용해서 골라서 DB에 넣고
수정을 할때
wr_1~wr_3들의 값들을 나타낼때가 없는데 어떻게 해야될까요?
<input type="text" name="wr_1" value="<? echo $wr_1;?>">
input type text같은 경우는 이렇게 하는데...
select 경우는
<option value="1" <?if($wr_1=='1'){?>selected<?}?> ?>1</option>
이렇게 하는데
아래 처음 구현한 것은 어떻게 해야될지 모르겟네요 ㅠㅠ
<select id="wr_1" name="wr_1" multiple ></select>
<select id="wr_2" name="wr_2" multiple ></select>
<select id="wr_3" name="wr_3" multiple ></select>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
function getData(mode) {
var key1 = $('#wr_1 option:selected').val();
var key2 = $('#wr_2 option:selected').val();
$.get('data.php', {mode:mode, key1:key1, key2:key2}, function(data) {
if (mode == 2) {
$target = $('#wr_3');
} else if (mode == 1) {
$target = $('#wr_2');
} else {
$target = $('#wr_1');
}
var option = '';
$.each(data, function (k, v) {
option = option + '<option value="' + (mode == 2 ? v : k) + '" class="op_s">' + (mode == 2 ? v : k) + '</option>';
});
$target.html(option);
}, 'json');
}
$(function() {
getData(0);
$('#wr_1').change(function(e) {
getData(1);
});
$('#wr_2').change(function(e) {
getData(2);
});
});
</script>
data.php
$cars['A'] = array(
'A-A' => array('야호'),
'A-B' => array('이야호')
);
if ($_GET['mode'] == 2) {
echo json_encode($cars[$_GET['key1']][$_GET['key2']]);
} else if ($_GET['mode'] == 1) {
echo json_encode($cars[$_GET['key1']]);
} else {
echo json_encode($cars);
}
?>
답변 1
trigger 기능을 이용하시면 될 듯 합니다.
대략적으로 아래처럼?
// rel 속성에 디비값을 넣는다.
<select id="wr_1" name="wr_1" rel="<?php echo $wr_1; ?>" multiple ></select>
<select id="wr_2" name="wr_2" rel="<?php echo $wr_2; ?>" multiple ></select>
<select id="wr_3" name="wr_3" rel="<?php echo $wr_3; ?>" multiple ></select>
...
getData(mode){
...
$target.html(option);
// rel 값이 있으면 selected하고 change이벤트를 발생시킨다.
if($target.attr('rel') != ''){
$target.val($target.attr('rel')).trigger('change');
}
...
}
...
답변을 작성하시기 전에 로그인 해주세요.