채택완료

multiple select 관련질문

2017-03-26 (일) 23:39:11 2,785

이렇게 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>

이렇게 하는데 

아래 처음 구현한 것은 어떻게 해야될지 모르겟네요 ㅠㅠ

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

채택된 답변
+20 포인트
2017-03-27 (월) 06:28:31

trigger 기능을 이용하시면 될 듯 합니다.

대략적으로 아래처럼?

Copy
// 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');    }    ...}...

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