조건에 따라 셀렉트박스를 다르게 하려면

· 17년 전 · 2319 · 5
제목대로이고요...
라디오 버튼에서 빵을 선택하면 식빵, 붕어빵이 나오고
야채를 선택하면 당근, 오이..
고기를 선택하면..닭고기, 소고기등
이렇게 나오게 할려고 아래처럼 했는데요....

조건에 따라 표시되는것이 아니라 한번에 다 보여요...

왜 그러런거죠 ?


<form name="fwrite">
<tr>
<td width="125"> </td>
<td width="515">
<input name="product" type="radio" value="1" checked >

<input name="product" type="radio" value="2" >
야채
<input name="product" type="radio" value="3" >
고기
</td>
</tr><br>
<tr>


</tr>

<? (if $product==1) {?>


<select name='wr_type1' onChange="moneys(this)" class=select>
<option value='1'>식빵</option>
<option value='2'>붕어빵</option>
</select>
<? } ?>
<? (if $product==2) {?>


<select name='wr_type1' onChange="moneys(this)" class=select>
<option value='1'>당근</option>
<option value='2'>오이</option>
</select>
<? } ?>

<? (if $product==3) {?>


<select name='wr_type1' onChange="moneys(this)" class=select>
<option value='1'>닭고기</option>
<option value='2'>소고기</option>
</select>
<? } ?>

</form>
|

댓글 5개

이게 아닐까요?

<? (if $product==1) {?> ==> <? if ($product==1) {?>
아래 모두... ^^
답변 감사드립니다.
말씀하신걸로 바꿔바도 똑같이 한번에 다나와요..ㅠ.ㅠ

얼마전에 다중셀렉트 소스를 찾은게 있는데

그걸응용해서

<script language='javascript'>
var cnt = new Array();
cnt[0] = new Array('수입/지출항목을 선택해주세요');
cnt[1] = new Array('운송수입-계약금','운송수입-잔금','미수금회수','창고보관수입','영업외수익','기타수익');
cnt[2] = new Array('대여금','인건비-일용직','인건비-정규직','상여금','수당','용차료','직영차사용료');
function change(ku) {
sel=document.psm.sel2
/* 옵션메뉴삭제*/
for (i=sel.length-1; i>=0; i--){
sel.options[i] = null
}
/* 옵션박스추가 */
for (i=0; i < cnt[ku].length;i++){
sel.options[i] = new Option(cnt[ku][i], cnt[ku][i]);
}
}

</script>
<script language="JavaScript">
function money(obj)
{
document.price.value = 100
}
</script>



<form name='psm' method='post' action=$PHP_SELF>
<select name='sel1' onchange="change(this[this.selectedIndex].value);money(this);" class=select>
<option value='0'>항목</option>
<option value='1'>수입항목</option>
<option value='2'>지출항목</option>
</select> <-- 항목선택
<select name='sel2' class='select'>
<option>수입/지출항목을 선택해주세요</option>
</select>
<input name="price" type="text" class="input" size="12" readonly>
</form>

이걸 이용해서...함해볼려구

<script language='javascript'>
var cnt = new Array();
cnt[0] = new Array('수입/지출항목을 선택해주세요');
cnt[1] = new Array('운송수입-계약금','운송수입-잔금','미수금회수','창고보관수입','영업외수익','기타수익');
cnt[2] = new Array('대여금','인건비-일용직','인건비-정규직','상여금','수당','용차료','직영차사용료');
function change(ku) {
sel=document.psm.sel2
/* 옵션메뉴삭제*/
for (i=sel.length-1; i>=0; i--){
sel.options[i] = null
}
/* 옵션박스추가 */
for (i=0; i < cnt[ku].length;i++){
sel.options[i] = new Option(cnt[ku][i], cnt[ku][i]);
}
}

</script>
<script language="JavaScript">
function money(obj)
{
document.getElementById('price').value = 100;
}
</script>



<form name='psm' method='post' action=$PHP_SELF>





<input name='sel1' type="radio" value="0" onchange="change(this);money(this);">항목
<input name='sel1' type="radio" value="1" >수입항목
<input name='sel1' type="radio" value="2" >지출항목






<select name='sel2' class='select'>
<option>수입/지출항목을 선택해주세요</option>
</select>
<input name="price" type="text" class="input" size="12" readonly>
</form>

바꿔 밨는데요..역시 실패..
<html>
<head>
<title></title>
<head>

<script language="JavaScript">
function Activity(name, list){
this.name = name;
this.list = list;
}

var acts = new Array();
acts[0] = new Activity('빵', ['식빵', '호빵', '붕어빵']);
acts[1] = new Activity('고기', ['소고기', '돼지고기', '양고기','말고기']);
acts[2] = new Activity('야채', ['파', '당근', '무우','오이']);

function updateList(str){
var frm = document.myForm;
var oriLen = frm.myList.length;
var numActs;

for (var i = 0; i < acts.length; i++){
if (str == acts[i].name) {
numActs = acts[i].list.length;
for (var j = 0; j < numActs; j++)
frm.myList.options[j] = new Option(acts[i].list[j],
acts[i].list[j]);
for (var j = numActs; j < oriLen; j++)
frm.myList.options[numActs] = null;
}
}
}
</script>
</head>

<body>

<form name=myForm>
<B>선택 :</B>
<input type=radio name=rad value=빵 onClick="updateList(this.value)">빵
<input type=radio name=rad value=고기 onClick="updateList(this.value)">고기
<input type=radio name=rad value=야채 onClick="updateList(this.value)">야채

<select name=myList>
<option>-----------</option>
</select>

</form>
</body>
</html>
최강님 감사합니다. 아주 잘되네요.....

^^
그런데, 빵에서 호빵을 선택 했을때 특정 함수를 불러서 다음 일을 처리 할려고 하면,
body의 셀렉트 부분에 onChange="change(this)" 이렇게 하면 되지 않나요 ?

물론 change() function은 스크립트로 따로 정의 하구요...

아래만 이렇게 바꿔 밨는데...change를 못불러요..

change()함수는
mylist 값이 1일때 2일때 3일때 각 조전에 맞는 일을 처리하도록 되어 있는거구요.






<form name=myForm>
<B>선택 :</B>
<input type=radio name=rad value=빵 onClick="updateList(this.value)">빵
<input type=radio name=rad value=고기 onClick="updateList(this.value)">고기
<input type=radio name=rad value=야채 onClick="updateList(this.value)">야채

<select name=myList onChange="change(this)">
<option>-----------</option>
</select>

</form>
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
17년 전 조회 1,099
17년 전 조회 1,050
17년 전 조회 1,628
17년 전 조회 1,026
17년 전 조회 1,029
17년 전 조회 1,204
17년 전 조회 1,537
17년 전 조회 1,545
17년 전 조회 1,010
17년 전 조회 2,320
17년 전 조회 2,094
17년 전 조회 1,126
17년 전 조회 977
17년 전 조회 977
17년 전 조회 1,541
17년 전 조회 970
17년 전 조회 1,685
17년 전 조회 1,136
17년 전 조회 982
17년 전 조회 981