multiple select 관련질문

multiple select 관련질문

QA

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');
    }
    ...
}
...
답변을 작성하시기 전에 로그인 해주세요.
전체 150
QA 내용 검색

회원로그인

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