셀렉트 값 수정하면 풀리는 문제
본문
안녕하세요 셀렉트를 글쓰기에 넣었는데
글을 수정하면 풀려버리더라구요...
풀리지않게하려는데 도움좀 부탁드립니다..
<div class="form-group">
<label class="col-sm-2 control-label" for="wr_homepage">지역</label>
<div class="col-sm-3">
<select id="city" value="<?php echo $wr_6 ?>" name="wr_6" required class="form-control input-sm">
<option value="">시/도</option>
<option value="서울" data-zone="강남구|강동구|강북구|강서구|관악구|광진구|구로구|금천구|노원구|도봉구|동대문구|동작구|마포구|서대문구|서초구|성동구|성북구|송파구|양천구|영등포구|용산구|은평구|종로구|중구|중랑구" >서울</option>
<option value="경기" data-zone="가평군|고양시|과천시|광명시|광주시|구리시|군포시|김포시|남양주시|동두천시|부천시|성남시|수원시|시흥시|안산시|안성시|안양시|양주시|양평군|여주군|연천군|오산시|용인시|의왕시|의정부시|이천시|파주시|평택시|포천군|하남시|화성시">경기</option>
<option value="인천" data-zone="강화군|계양구|남동구|부평구|연수구|옹진군|중구|서구|동구|남구">인천</option>
<option value="강원" data-zone="강릉시|동해시|삼척시|속초시|양구군|양양군|영월군|원주시|인제군|정선군|철원군|춘천시|태백시|평창군|홍천군|화천군|횡성군">강원</option>
<option value="충남" data-zone="공주시|금산군|논산시|당진시|보령시|부여군|서산시|서천군|아산시|연기군|예산군|천안시|청양군|태안군|홍성군">충남</option>
<option value="대전" data-zone="대덕구|유성구|서구|중구|동구">대전</option>
<option value="충북" data-zone="괴산군|단양군|보은군|영동군|옥천군|음성군|제천시|진천군|청원군|청주시|충주시">충북</option>
<option value="세종" data-zone="">세종</option>
<option value="부산" data-zone="강서구|금정구|기장군|남구|동구|동래구|부산진구|북구|사상구|사하구|서구|수영구|연제구|영도구|중구|해운대구">부산</option>
<option value="울산" data-zone="울주군|중구|남구|동구|북구">울산</option>
<option value="대구" data-zone="달서구|달성구|수성구|남구|중구|서구|북구|동구">대구</option>
<option value="경북" data-zone="경산시|경주시|고령군|구미시|군위군|김천시|문경시|봉화군|상주시|성주군|안동시|영덕군|영양군|영주시|영천시|예천군|울릉군|울진군|의성군|청도군|청송군|칠곡군|포항시">경북</option>
<option value="경남" data-zone="거제시|거창군|고성군|김해시|남해군|마산시 합포구|마산시 회원구|밀양시|사천시|산청군|양산시|의령군|진주시|진해시|창녕군|창원시|통영시|하동군|함안군|함양군|합천군">경남</option>
<option value="전남" data-zone="강진군|고흥군|곡성군|광양시|구례군|나주시|담양군|목포시|무안군|보성군|순천시|신안군|여수시|영광군|영암군|완도군|장성군|장흥군|진도군|함평군|해남군|화순군">전남</option>
<option value="광주" data-zone="광산구|북구|서구|남구|동구">광주</option>
<option value="전북" data-zone="고창군|군산시|김제시|남원시|무주군|부안군|순창군|완주군|익산시|임실군|장수군|전주시|정읍시|진안군">전북</option>
<option value="제주" data-zone="서귀포시|제주시">제주</option>
</select>
</div>
<div class="col-sm-3">
<select id="zone" value="<?php echo $wr_7 ?>" name="wr_7" required class="form-control input-sm">
<option value="">시/군/구</option>
</select>
</div>
</div>
<script>
$(function(){
$('#city').on('change', function(){
$('#zone > option:gt(0)').remove();
var $zone = $('#city > option:selected').attr('data-zone');
if($zone){
$($zone.split('|')).each(function(){
$('#zone').append('<option value="' + this + '">' + this + '</option>');
});
}
$('#zone').focus();
});
});
</script>
답변 3
풀려버리는게 아니라 수정시는 구군 select의 option은 아예 만들어지지 않으니 선택된 상태가 될 수 없는 소스입니다
구군 만드는 부분을 따로 떼어서 아래처럼 함수로 만들고 수정시에도 호출 되도록 하세요
function gu_gun(){
var $zone = $('#city > option:selected').attr('data-zone');
if($zone){
$($zone.split('|')).each(function(){
$('#zone').append('<option value="' + this + '">' + this + '</option>');
});
}
$('#zone').focus();
}
35~41행 삭제 후
$('#zone > option:gt(0)').remove(); 다음 행에 gu_gun(); <--이걸 넣으세요
아래 코드는 수정시 작동
if("<?=$w?>"=='u'){
$("#city").val("<?=$write[wr_6]?>");
gu_gun();
$("#zone").val("<?=$write[wr_7]?>");
}
--- 위 소스는 모두 < /script >바로 위에 넣으면 됩니다
select 안에 value로 처리하시는게 아니라 option에 selected 라는 옵션으로 선택되어지는 부분이라
if 문으로 하셔서 해당 부분에 적용되는거라면 selected 될수 있도록 적용해 주셔야 합니다.
간단하게 하실려면 $("#city").val("<?php echo $wr_6;?>") 해보세요