테스트 사이트 - 개발 중인 베타 버전입니다

디비연동 셀렉트 박스 선택시 다른 input 박스에 관련값 뿌려주기..

· 17년 전 · 2696 · 4
<select name="gline">
<option>결재</option>
<?
$strsql="SELECT name,memid,place FROM 테이블명 ORDER BY name ASC";
$stmt=mysql_query($strsql,$con);
for ($i=0; $i<mysql_num_rows($stmt); $i++) {
$num=$i+1;
$name=mysql_result($stmt,$i,name);
$place=mysql_result($stmt,$i,place);
?>
<option value="<?echo("$name");?>"><?echo("$name");?></option>
<?
}
?>
</select>

이런식으로 디비에서 값을 불러와서 셀렉트 박스로 구현했는데요..
셀렉트 박스내용이 이름인데.. 그 이름을 선택하하면
같은 페이지에 있는 input 박스 안에
이름과 같은 $place 값이 나타나게 하고 싶은데요..
제가 거의 초보 수준이라서 잘 안되네요..
완성소느 내지는 힌트라도 좀 올려주실분..
도와주세요 고수님들 ㅜㅜ

댓글 작성

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

로그인하기

댓글 4개

select 태그에 onchange 이벤트를 잡아주면 됩니다.

<select name="gline" onchange="document.getElementById('input의 ID').value = this.value;">

이런 식이면 될 겁니다. (확인은 안 해봤습니다 -_-)

아, 그리고 option 태그가 둘 다 name이 들어가네요. value는 place가 돼야겠죠?

<option value="<?php echo $place; ?>"><?php echo $name; ?></option>
17년 전
답변 감사드립니다. ^^
제가 질문했던건..
필드에 name, place, memid 이렇게 3개가 있는데
name 값은 디비에서 불러와서 셀렉트 박스로 가져왔고..
그 name 값에 대한 place 값을 input 박스에 뿌려주는 방법이었습니다;;
정말 죄송합니다만 다시한번만 부탁드립니다. ㅜㅜ
17년 전
<select name="gline1" style="width:70px;" onchange="document.getElementById('place1').value = this.value.substr(4,3).replace(',', '');">
<option>:: 선택 ::</option>
<?
$strsql="SELECT name,memid,place FROM 테이블명 ORDER BY name ASC";
$stmt=mysql_query($strsql,$con);
for ($i=0; $i<mysql_num_rows($stmt); $i++) {
$num=$i+1;
$name=mysql_result($stmt,$i,name);
$place=mysql_result($stmt,$i,place);
$memid=mysql_result($stmt,$i,memid);
?>
<option value="<?echo("$name");?>,<?echo("$place");?>,<?echo("$memid");?>"><?echo("$name");?></option>
<?
}
?>
</select>

결국에 onchange 부분에 자바스크립트 문자열 함수 써서 필요한 부분만 출력되게 해놨어여;;;
눈가리고 아웅;;;
나중에 이거 이어받는 개발자가 욕하겠네요 ㅠㅠ;;
select 값은 안 쓰이는 건가요? 아니면 서버에서도 동일하게 나눠서 쓰는 건가요?

만약 서버에서 나눠서 처리한다면, 특별한 게 없다면 name, memid, place를 얻는 것보다는 id(primary key)를 이용해서 한 큐에 처리하는 게 더 안전할 것 같습니다.

게시글 목록

번호 제목
633
632
629
623
621
618
616
614
600
594
590
568
557
556
553
550
548
545
543
540
535
531
530
527
523
520
519
517
515
512