셀렉트 할 때 다중값 입력하기
본문
안녕하세요. 고수님들께 도움 좀 요청드립니다.
먼저 의도는 다음과 같습니다.
A(teacher)라는 게시판은 강사게시판입니다.
강사의 이름과 전화번호, 거주지 등이 등록되어 있습니다.
B 게시판은 수업게시판입니다.
이 B 게시판에 수업을 등록하면서
여분필드1에 A 게시판에 등록된 강사의 이름
여분필드2에 A 게시판에 등록된 강사의 전화번호
여분필드3에 A 게시판에 등록된 강사의 거주지
를 자동으로 등록하고 싶습니다.
그래서 write.skin에 아래와 같이 작성하였습니다.
<?php
$write_table = "g5_write_teacher";
$sql = "select wr_id, wr_subject, wr_4, wr_5 from {$write_table} order by wr_id desc ";
$result = sql_query($sql);
?>
<select name="wr_1" id="wr_1" >
<?php
echo '<option value="">선택해주세요.</option>';
while ($row = sql_fetch_array($result)) {
echo '<option value="'.$row['wr_id'].'" '. ($write['wr_1'] == $row['wr_id'] ? 'selected=selected' : '') .'>'.$row['wr_subject'].'</option>';
}
?>
</select>
위처럼 하니 A게시판의 강사의 이름(wr_subject)를 선택하면 wr_1에 wr_id 값이 잘 들어갑니다.
이때 wr_id 값과 함께 선택된 강사의 전번(wr_4)과 거주지(wr_5)를 동시에
wr_2, wr_3 에 넣고 싶습니다.
즉 정리해서 설명드리면
A게시판의 wr_id, wr_subject, wr_4, wr_5 의 값을 가져와서
B게시판의 wr_1, wr_2, wr_3, wr_4에 각각 넣고 싶습니다.
혹시나해서 아래 처럼 소스를 넣어 봤지만 입력되진 않았습니다.
<?php
$write_table = "g5_write_teacher";
$sql = "select wr_id, wr_subject, wr_4, wr_5 from {$write_table} order by wr_id desc ";
$result = sql_query($sql);
?>
<select name="wr_1" id="wr_1" >
<?php
echo '<option value="">선택해주세요.</option>';
while ($row = sql_fetch_array($result)) {
echo '<option value="'.$row['wr_id'].'" '. ($write['wr_1'] == $row['wr_id'] ? 'selected=selected' : '') .'>'.$row['wr_subject'].'</option>';
echo '<input type="hidden" name="'.$write['wr_2'].'" value="'.$row['wr_subject'].'">';
echo '<input type="hidden" name="'.$write['wr_3'].'" value="'.$row['wr_4'].'">';
echo '<input type="hidden" name="'.$write['wr_4'].'" value="'.$row['wr_5'].'">';
}
?>
</select>
위 소스를 어떻게 수정하면 될까요?
감사합니다~
!-->!-->답변 3
하단에 고민한 소스는 기대한 작동이 되지 않는 코드입니다.
사용자가 셀렉트 박스에서 강사를 선택하기 전에는,
(선택예정인) 강사의 전화번호, 거주지 정보를 가져올 수 없어서 입니다.
전체적인 재검토가 필요합니다.
echo '<input type="hidden" name="'.$write['wr_2'].'" 도
echo '<input type="hidden" name="wr_2" 로 하는게 맞습니다.
로직은 크게 2가지 방향이 있습니다.
1) 셀렉트 박스에서 강사 선택시, chagne 이벤트에서 ajax 로 선택된 강사의 wr_subject, wr_4, wr_5 값을, 히든 필드 wr_2, wr_3, wr_4 에 동적으로 가져오기
2) 수업 등록폼에는 상단의 소스까지만 적용하고,
write_update.head.skin.php 를 새로 만들어,
wr_2, wr_3, wr_4 를 wr_1 에 저장된 강사 wr_id 값으로 새로 sql 문 실행을 통해 저장
이 중 2)의 방법을 사용하면 대략 다음과 같습니다.
write.skin.php (상단의 소스 기반입니다.)
<?php
$write_table = "g5_write_teacher";
$sql = "select wr_id, wr_subject, wr_4, wr_5 from {$write_table} order by wr_id desc ";
$result = sql_query($sql);
?>
<select name="wr_1" id="wr_1" >
<?php
echo '<option value="">선택해주세요.</option>';
while ($row = sql_fetch_array($result)) {
echo '<option value="'.$row['wr_id'].'" '. ($write['wr_1'] == $row['wr_id'] ? 'selected=selected' : '') .'>'.$row['wr_subject'].'</option>';
}
?>
</select>
<input type="hidden" name="wr_2" value="<?php echo $wr_2 ?>">
<input type="hidden" name="wr_3" value="<?php echo $wr_3 ?>">
<input type="hidden" name="wr_4" value="<?php echo $wr_4 ?>">
write_update.head.skin.php
(DB 에 저장되기 직전, wr_1 에 저장된 강사의 wr_id 값을 활용하여 wr_2 ~ wr_4 값을 채웁니다.)
<?php
if (!defined('_GNUBOARD_')) exit;
$teacher_table = "g5_write_teacher";
$sql = "
select wr_subject, wr_4, wr_5
from {$teacher_table}
where wr_id = '{$wr_1}'
";
$row = sql_fetch($sql);
$wr_2 = $row['wr_subject']; // 강사의 이름
$wr_3 = $row['wr_4']; // 강사의 전화번호
$wr_4 = $row['wr_5']; // 강사의 거주지
복잡한 내용도 아닌데 질문을 쉽게 하기 위하여 A,B 게시판을 예로....
답변을 보아도 적용할 줄 모른다면 실제 사용할 내용으로 질문을 해야 쉽게 적용을 할 수 잇을텐데요
위처럼 하니 A게시판의 강사의 이름(wr_subject)를 선택하면 wr_1에 wr_id 값이 잘 들어갑니다. <--이렇게 질문하고서 영카트에 적용하겠다니 어불성설입니다
그리고 ajax 필요업습니다
저장할 때 추출해온 값을 바로 저장해버리면 되니까요
form 수정
<select name="wr_1" id="wr_1" > 수정
<select name="it_1">
echo '<option value="'.$row['wr_id'].'" '. ($write['wr_1'] == $row['wr_id'] ? 'selected=selected' : '') .'>'.$row['wr_subject'].'</option>'; 수정
echo '<option value="'.$row['wr_id'].'" '. ($it['it_1'] == $row['wr_id'] ? 'selected=selected' : '') .'>'.$row['wr_subject'].'</option>';
///////////////////////////////////////////
상품등록은 itemformupdate.php에서 이루어지니 이 화일 상단 적당한 곳에
아래 코드를 넣으면 됩니다
$teacher_table = "g5_write_teacher";
$sql = "select wr_subject, wr_4, wr_5 from {$teacher_table} where wr_id = '{$it_1}' ";
$row = sql_fetch($sql);
$it_2 = $row['wr_subject']; // 강사의 이름
$it_3 = $row['wr_4']; // 강사의 전화번호
$it_4 = $row['wr_5']; // 강사의 거주지
초보인 제가 적용할 수 있는 소스는 아닌 것 같습니다 <----???
위 답변대로 하면 되는데 적용할 수 없다는 말은???
스킨폴더에 write_update.head.skin.php 화일을 만들어서 위 답변 소스를 복사해 넣으세요
질문 소스코드 첫번째 외에 다른 부분은 일체 추가할 필요없습니다
<?php
if (!defined('_GNUBOARD_')) exit;
$teacher_table = "g5_write_teacher";
$sql = "select wr_subject, wr_4, wr_5 from {$teacher_table} where wr_id = '{$wr_1}' ";
$row = sql_fetch($sql);
$wr_2 = $row['wr_subject']; // 강사의 이름
$wr_3 = $row['wr_4']; // 강사의 전화번호
$wr_4 = $row['wr_5']; // 강사의 거주지
?>
그런데 질문대로 하자면 아래 처럼 되겠습니다
여분필드1에 A 게시판에 등록된 강사의 이름---> $wr_1= 강사의 이름 <==> $row['wr_subject']; ???
여분필드2에 A 게시판에 등록된 강사의 전화번호 ---> $wr_2 = 강사의 전화번호 필드
여분필드3에 A 게시판에 등록된 강사의 거주지 --> $wr_3 = 강사의 거주지 필드
를 자동으로 등록하고 싶습니다.