다중셀렉트 처리 문의드립니다. 채택완료
안녕하세요~!
정말 쌩초짜가 끙끙대며 혼자 실무를 이어나가는 상황에서,
여기 계신 개발자 분들이 얼마나 대단하신 분들인지 새삼 느끼고 있습니다.
아무리 혼자 머리를 굴려보고 검색을 해봐도 원하는 해답을 찾을 수 없어 이렇게 질문을 남기게 됐습니다.
많은 고수분들의 소중한 답변을 부탁드려봅니다.
==============================================================================
우선 상단에 아래와 같은 형태로 string 값을 쪼개어 구분을 주었습니다.
</p><p><?php</p><p><span style="font-size: 11pt;">$gmarket_id = explode(",",$member['mb_11']); // mb_11 필드에 저장된 값들을 쪼갠다</span> </p><p>?></p><p>
그 다음 본문에서 아래와 같이 처리합니다.
</p><p><select name="gmarket" id="gmarket_id" disabled="true"></p><p style="margin-left: 40px;"><span style="font-size: 11pt;"><option value="">선택하세요</option></span></p><p style="margin-left: 40px;"><?php</p><p style="margin-left: 40px;"><span style="font-size: 11pt;"> for ($m=0; $m<count($gmarket_id); $m++) {</span></p><p style="margin-left: 40px;">?></p><p> <option><?php echo $gmarket_id[$m]; ?></option></p><p style="margin-left: 40px;"><?php } ?></p><p></select></p><p><select name="gmarket2" id="gmarket_id" disabled="true"></p><p> <option value="">선택하세요</option></p><p> <?php</p><p> for ($m=0; $m<count($gmarket_id); $m++) {</p><p> ?></p><p> <option><?php echo $gmarket_id[$m]; ?></option></p><p> <?php } ?></p><p></select></p><p><select name="gmarket3" id="gmarket_id" disabled="true"></p><p> <option value="">선택하세요</option></p><p> <?php</p><p> for ($m=0; $m<count($gmarket_id); $m++) {</p><p> ?></p><p> <option><?php echo $gmarket_id[$m]; ?></option></p><p> <?php } ?></p><p></select></p><p>
여기서 질문 드리고자 합니다.
코드를 보시면 아시겠지만,
여러개의 셀렉트박스가 있는데, 첫번째 박스를 선택하면 두번째 박스의 disabled 가 false 되고
두번째 박스를 선택하면 세번째 박스의 disabled 가 false 되게 하였습니다. (jQuery로 구현하였습니다)
여기서 문제가 생기는데,
첫번째 박스에서 하나의 <option> 값을 선택하면,
두번째 박스가 enabled 되면서 첫번째 박스에서 선택한 <option> 값을 '제외한' 나머지 값들을 노출하고 싶습니다.
마찬가지로, 첫번째와 두번째 박스의 값이 선택되면
세번째 박스는 앞에서 선택한 <option> 값을 '제외한' 나머지가 노출되게 되겠죠~
단순하게 미리 <option> 들이 지정되어 있었다면,
선택하는 경우의 수 마다 간단하게 이벤트처리를 할 수 있었겠지만,
사용자에게서 사전에 입력받은 값을 for문으로 뿌려주는 저런 형태에서는
어떻게 해야할 지 여러가지로 시도를 해봤지만 번번히 실패하더군요..ㅠㅠ
처음에는 별 것 아니라고 생각하고 덤볐다가 여기서 더 이상 진도가 안나가는 사태가 발생했습니다.. ;;
쌩초짜인 저의 실력 부족인 탓입니다.
고수분들의 소중한 답변을 기다리겠습니다.
감사합니다.
답변 1개
</p><p>$(function() {
$("select[name^='gmarket']").on("change", function(i) {
var nxt = $(this).index() + 2;
var opt = $("option:gt(0)", $(this)).not(":selected").clone();
$("option:gt(0)", $(this).nextAll()).remove();
$("select[name='gmarket" + nxt + "']").attr("disabled", false).append(opt);
});
});</p><p>
http://nyaongii.dothome.co.kr/temp/wrid_179326.html">http://nyaongii.dothome.co.kr/temp/wrid_179326.html
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
왜 제가 적용하면 안되는걸까요... 하하 ㅠㅠㅠ
일단은 남겨주시는 코드를 공부해서 어떻게든 적용해봐야겠네요~ㅠㅠ
소중한 답변 감사드립니다!