셀렉트 콤보박스 선택값을 input 박스에 넣기

myprofile.PNG
제 홈페이지에서 셀렉트 콤보박스 값을 선택했을 때 그 선택 값이 옆에 있는 input 박스 속으로 자동으로 들어가게 하는 프로그램을 만들어 봤습니다. (원래는 다른 페이지에서 잘 되고 있는 코드를 원용해서 해당 id값만 변형해서 코드를 붙인 것임)

그런데 이상하게도 이 페이지에서만 선택값이 넘어가질 낳네요. 코드 어디가 문제인지를 봐 주시기 바랍니다. 모두 3 x 7 의 21개 코드가 있지만 여기서는 편의상 맨 윗줄의 3개 코드만 예시해 놓고 나머지는 생략했습니다.

myprifile_form.skin.php에서

html부분은 여기 이고요.
<tr bgcolor="#ffffff">
<td width="20%" class=m_title bgcolor="#f5f5f5">주</td>
<td>
<select name='mb_a1' id='mb_a1' style="width:45%;" onchange="mb_a1_change();">
<option value='0' selected>선택하세요</option><br><?=get_item_list()?></select>
<input name='txt_mb_a1' id='txt_mb_a1' style="width:50%;" value="<?=get_major($mb_a1)?>">

</td>
<td>
<select name='mb_b1' id='mb_b1' style="width:45%;" onchange="mb_b1_change();">
<option value='0' selected>선택하세요</option><br><?=get_func_list()?></select>
<input name='txt_mb_b1' id='txt_mb_b1' style="width:46%;" value="<?=get_major($mb_b1)?>">
</td>
<td><select name='mb_c1' id='mb_c1' style="width:45%;" onchange="mb_c1_change();">
<option value='0' selected>선택하세요</option><br><?=get_bound_list()?>/select>
<input name='txt_mb_c1' id='txt_mb_c1' style="width:46%;" value="<?=get_major($mb_c1)?>">
</td>
</tr>


..... <이하 생약>.....



함수 부분은 여기에

<script type="text/javascript">

function mb_a1_change()
{
var el = document.getElementById('mb_a1');
document.getElementById('txt_mb_a1').value = el.options[el.selectedIndex].text;
}
function mb_b1_change()
{
var el = document.getElementById('mb_b1');
document.getElementById('txt_mb_b1').value = el.options[el.selectedIndex].text;
}
function mb_c1_change()
{
var el = document.getElementById('mb_c1');
document.getElementById('txt_mb_c1').value = el.options[el.selectedIndex].text;
}

//....<이하 생략>.....

</script>



똑같은 코드가 다른데서는 잘되는게 이곳에서만 안될 땐 정말 난감합니다.
어디서부터 손을 봐야할지 답답합니다. 고수분들좀 봐주세요.

***P.S.: 해당 험페이지에서 직접 확인 할 경우의 접속 id/pw: amuna/1234 입니다.

첨부파일

myprofile.PNG (22.8 KB)
2회 2013-07-27 18:27
|

댓글 3개

select box마다 각각 함수를만들어 호출하는 것은 대단히 무식한 방법입니다
21개나 필요없는 함수를 만들다니 말이 됩니까?


1. 그누보드에서 사용하는 것이라면 아래처럼 모든 onchange를 동일하게 하면 됩니다
함수 부분은 필요없습니다
onchange="$(this).next().val(this.value)"

2. jquery를 사용하지않는 페이지라면 onchange를 아래처럼 만듭니다
onchange="change_value(this.value, 'a1')"
onchange="change_value(this.value, 'b1')"

함수는 하나만 만듭니다
function change_value(vv, id){
document.getElementById("txt_mb_"+id).value=vv
}

3. 2번의 경우 onchange를 아래처럼 만들어도 됩니다 함수는 필요없습니다
onchange="document.getElementById('txt_mb_a1').value=this.value"
onchange="document.getElementById('txt_mb_b1').value=this.value"

그리고 option태그 사이에 이런 쓸데없는 코드는 들어가는 것이 아닙니다
</option><br><---br
실제로 실행되는지는 해봐야 알겠지만 여하튼 좋은 지적에 감사드립니다.
코드가 무식한 방법에다 지저분한 것 백번 동의합니다. 원본은 다른 사람이 개발해 놓은 것에다 제가 수리하는 방식을 취하다보니 그렇게 되었습니다
option태그사이에 쓸데 없는 코드는 무엇을 말하는 것인지요.
1/2/3번 방식으로 하니까 바로 모두 되네요. 그런데 선택하면 과목명이 들어가지 않고 해당 과목명의 id 숫자가 들어가는데 과목명이 들어가게 하는 방법은요?
현재 data 저장은 id($mj_id)로 되고 화면에는 해당 id의 이름($mj_name)을 찾아 보여주는 방식으로 프로그램이 되어 있습니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

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

+
제목 글쓴이 날짜 조회
12년 전 조회 732
12년 전 조회 736
12년 전 조회 774
12년 전 조회 820
12년 전 조회 984
12년 전 조회 3,616
12년 전 조회 934
12년 전 조회 706
12년 전 조회 972
12년 전 조회 7,983
12년 전 조회 725
12년 전 조회 702
12년 전 조회 944
12년 전 조회 777
12년 전 조회 955
12년 전 조회 1,047
12년 전 조회 740
12년 전 조회 1,015
12년 전 조회 1,562
12년 전 조회 752
🐛 버그신고