셀렉트 박스 내용 선택하면 해당 내용 바뀌게 하는 방법 정보
셀렉트 박스 내용 선택하면 해당 내용 바뀌게 하는 방법
본문
제작중인 스킨의 해당 게시판에서 폼작업 중에 셀렉트박스를 많이 사용해야 되었습니다
셀렉트박스에서 내용을 선택해주면 해당 폼이 나옵니다
예를 들어 등록비라는 제목의 셀렉트박스라면 셀렉트박스의 내용이 미책정과 책정비용으로 나뉩니다
미책정 상태에서는 텍스트폼(텍스트 필드)가 나오지 않고요 책정비용을 선택하게 되면 텍스트 폼이 나오게 하는 부분까지는 성공 했습니다
문제는 뷰화면에서 미책정 부분으로 가질 않습니다
해당 소스를 보여드리겠습니다
============= write.skin.php 내용 중 자바 스크립트 ========================
<script>
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function setPage() {
var obj = event.srcElement;
a1.style.display = "none";
a2.style.display = "none";
// a3.style.display = "none";
createCookie("page", obj.value);
eval("a" + obj.value).style.display = "block";
}
function init() {
var v = readCookie("page");
if (!v) v = 1;
pageIdx.options[v-1].selected = true;
a1.style.display = "none";
a2.style.display = "none";
// a3.style.display = "none";
createCookie("page", v);
eval("a" + v).style.display = "block";
}
</script>
============= write.skin.php 내용 셀렉트박스 ========================
<div class="wr_x_form">
<ul>
<li>
<select id="pageIdx" onchange="setPage()">
<option value="1" onClick="<? $write[wr_2] = 0 ?>">미책정</option>
<option value="2" onClick="<? $write[wr_2] = 1 ?>">책정금액</option>
</select>
</li>
<li>
<div id="a1"><input style="width:100px; display:none;" name=wr_9 id="wr_9" itemname="색상" value="<?=$wr_2 = 1?>" class=mw_basic_text></div>
<div id="a2" style="display:none;"><input style="width:100px; display:none;" name=wr_9 id="wr_9" itemname="색상" value="<?=$wr_2 = 2?>" class=mw_basic_text><? $write[wr_2] = 1 ?><input style="width:200px;" name=wr_3 id="wr_3" itemname="가격" value="<?=$wr_3?>" class=mw_basic_text></div>
</li>
</ul>
</div>
여기서 wr_x 강제로 수를 넣고 보이지 않게 display:none; 했습니다
이렇게 하면 미책정을 클릭했을 떄 wr_2에 값이 0 이 되어야 하는데 밑에까지 같이 읽어서 0에서 1로 변환되어 미책정이 아니게 되더라고요 ;;;
view.skin.php 를 보면
<tr>
<td>
<table cellspacing="0" cellpadding="0">
<tr>
<td class=mw_basic_view_subject>랜탈가격<?=number_format($view['wr_2'])?></td>
<td class=mw_basic_view_subject>
<?
if($view[wr_2] == 0){
echo "등록비 : <span style='font-weight:normal;'>미책정</span>";
} else {
echo "등록비 : <span style='font-weight:normal;'>",number_format($view['wr_3']),"</span>";
}
?>
</td>
<td class=mw_basic_view_subject>
랜탈비 : <span style="font-weight:normal;"><?=number_format($view['wr_4']);?>(1년차)</span>
</td>
<td>상세보기</td>
</tr>
</table>
</td>
</tr>
<tr><td height=1 bgcolor=#E7E7E7></td></tr>
이렇게 짜봤거든요
write.skin.php 에서 제어를 해줘야 될것 같은데 어떻게 해야할지 막막하네요
자바스크립트라도 php 문으로 바꿔주시면 자바스크립트 내의 변수를 사용해서 해볼 수 있을듯도 한데 어떻게 방법이 없을까요?
셀렉트박스에서 내용을 선택해주면 해당 폼이 나옵니다
예를 들어 등록비라는 제목의 셀렉트박스라면 셀렉트박스의 내용이 미책정과 책정비용으로 나뉩니다
미책정 상태에서는 텍스트폼(텍스트 필드)가 나오지 않고요 책정비용을 선택하게 되면 텍스트 폼이 나오게 하는 부분까지는 성공 했습니다
문제는 뷰화면에서 미책정 부분으로 가질 않습니다
해당 소스를 보여드리겠습니다
============= write.skin.php 내용 중 자바 스크립트 ========================
<script>
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function setPage() {
var obj = event.srcElement;
a1.style.display = "none";
a2.style.display = "none";
// a3.style.display = "none";
createCookie("page", obj.value);
eval("a" + obj.value).style.display = "block";
}
function init() {
var v = readCookie("page");
if (!v) v = 1;
pageIdx.options[v-1].selected = true;
a1.style.display = "none";
a2.style.display = "none";
// a3.style.display = "none";
createCookie("page", v);
eval("a" + v).style.display = "block";
}
</script>
============= write.skin.php 내용 셀렉트박스 ========================
<div class="wr_x_form">
<ul>
<li>
<select id="pageIdx" onchange="setPage()">
<option value="1" onClick="<? $write[wr_2] = 0 ?>">미책정</option>
<option value="2" onClick="<? $write[wr_2] = 1 ?>">책정금액</option>
</select>
</li>
<li>
<div id="a1"><input style="width:100px; display:none;" name=wr_9 id="wr_9" itemname="색상" value="<?=$wr_2 = 1?>" class=mw_basic_text></div>
<div id="a2" style="display:none;"><input style="width:100px; display:none;" name=wr_9 id="wr_9" itemname="색상" value="<?=$wr_2 = 2?>" class=mw_basic_text><? $write[wr_2] = 1 ?><input style="width:200px;" name=wr_3 id="wr_3" itemname="가격" value="<?=$wr_3?>" class=mw_basic_text></div>
</li>
</ul>
</div>
여기서 wr_x 강제로 수를 넣고 보이지 않게 display:none; 했습니다
이렇게 하면 미책정을 클릭했을 떄 wr_2에 값이 0 이 되어야 하는데 밑에까지 같이 읽어서 0에서 1로 변환되어 미책정이 아니게 되더라고요 ;;;
view.skin.php 를 보면
<tr>
<td>
<table cellspacing="0" cellpadding="0">
<tr>
<td class=mw_basic_view_subject>랜탈가격<?=number_format($view['wr_2'])?></td>
<td class=mw_basic_view_subject>
<?
if($view[wr_2] == 0){
echo "등록비 : <span style='font-weight:normal;'>미책정</span>";
} else {
echo "등록비 : <span style='font-weight:normal;'>",number_format($view['wr_3']),"</span>";
}
?>
</td>
<td class=mw_basic_view_subject>
랜탈비 : <span style="font-weight:normal;"><?=number_format($view['wr_4']);?>(1년차)</span>
</td>
<td>상세보기</td>
</tr>
</table>
</td>
</tr>
<tr><td height=1 bgcolor=#E7E7E7></td></tr>
이렇게 짜봤거든요
write.skin.php 에서 제어를 해줘야 될것 같은데 어떻게 해야할지 막막하네요
자바스크립트라도 php 문으로 바꿔주시면 자바스크립트 내의 변수를 사용해서 해볼 수 있을듯도 한데 어떻게 방법이 없을까요?
댓글 전체
<div id="a1"><input style="width:100px; display:none;" name=wr_9 id="wr_9" itemname="색상" value="<?=$wr_2 = 1?>" class=mw_basic_text></div>
<div id="a2" style="display:none;"><input style="width:100px; display:none;" name=wr_9 id="wr_9" itemname="색상" value="<?=$wr_2 = 2?>" class=mw_basic_text><? $write[wr_2] = 1 ?><input style="width:200px;" name=wr_3 id="wr_3" itemname="가격" value="<?=$wr_3?>" class=mw_basic_text></div>
이부분요....
write.skin.php 에서 input 안에 value 는 <?=$wr_2 = 1?> 아니고 <?=$write[wr_2] = 1?> 이런식 아닐까요. 참고로 저는 실력이 미천해서 전체 이해 못했고 오타아닐까 본 정도입니다. 속히 해결하시길...
<div id="a2" style="display:none;"><input style="width:100px; display:none;" name=wr_9 id="wr_9" itemname="색상" value="<?=$wr_2 = 2?>" class=mw_basic_text><? $write[wr_2] = 1 ?><input style="width:200px;" name=wr_3 id="wr_3" itemname="가격" value="<?=$wr_3?>" class=mw_basic_text></div>
이부분요....
write.skin.php 에서 input 안에 value 는 <?=$wr_2 = 1?> 아니고 <?=$write[wr_2] = 1?> 이런식 아닐까요. 참고로 저는 실력이 미천해서 전체 이해 못했고 오타아닐까 본 정도입니다. 속히 해결하시길...