이렇게 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'); } ...}...
답변을 작성하려면 로그인이 필요합니다.