select 박스값을 외부로 출력하고 싶습니다.
본문
select박스(업체DB정보담겨져있습니다.)
select값 선택시에 각업체 부가정보가 출력되며
수량을 적을 수 있는 input창이 3개가 생성되어야 합니다.
select 클릭시 input창 생성까지는 id값을 가져와 switch 문을 사용하여 생성하였습니다.
이후 작업진행이 안되어 질문드립니다.
select값 선택시 업체부가정보 값이 나와야하는데 정보가 출력이 안되고 있습니다.
input창만 출력되네요..ㅠ
조언부탁드립니다.
<<원하는 값>>
구분1(요금1) input창
구분2(요금2) input창
구분3(요금3) input창
<<현재문제 출력값>>
() input창
() input창
() input창
<tbody>
<tr>
<td>
<select name="dv_sc_type" id="dv_sc_type">
<option value=''>전체</option>
<?php
$dv_sql = "select * from {$g5['delivery_table']}";
$dv_result = sql_query($dv_sql);
for ($i=1; $dv_row=sql_fetch_array($dv_result); $i++) {
echo '<option value="'.$i.'" '.get_selected($i, $dv_row['dv_no']).'>'.$dv_row['dv_name'].'</option>';
}
?>
</select>
</td>
</tr>
<?php
$dv_sql1 = "select * from {$g5['delivery_table']} where dv_no = '{$dv_row['dv_no']}' ";
$dv_result1 = sql_query($dv_sql1);
$dv = sql_fetch_array($dv_result1);
?>
<tr id="dv_con_type1">
<th scope="row"><?php echo $dv['dv_type1']; ?>(<?php echo $dv['dv_price1']; ?> 원)</th>
<td class="td_extra">
<input type="text" name="it_6" id="it_6" value="<?php echo $it['it_6']; ?>" class="frm_input">
</td>
</tr>
<tr id="dv_con_type2">
<th scope="row"><?php echo $dv['dv_type2']; ?>(<?php echo $dv['dv_price2']; ?> 원)</th>
<td class="td_extra">
<input type="text" name="it_7" id="it_7" value="<?php echo $it['it_7']; ?>" class="frm_input">
</td>
</tr>
<tr id="dv_con_type3">
<th scope="row"><?php echo $dv['dv_type3']; ?>(<?php echo $dv['dv_price3']; ?> 원)</th>
<td class="td_extra">
<input type="text" name="it_8" id="it_8" value="<?php echo $it['it_8']; ?>" class="frm_input">
</td>
</tr>
</tbody>
<script>
$(function() {
<?php
switch($dv_row['dv_sc_type']) {
case 1:
echo '$("#dv_con_type1").show();'.PHP_EOL;
echo '$("#dv_con_type2").show();'.PHP_EOL;
echo '$("#dv_con_type3").show();'.PHP_EOL;
break;
case 2:
echo '$("#dv_con_type1").show();'.PHP_EOL;
echo '$("#dv_con_type2").show();'.PHP_EOL;
echo '$("#dv_con_type3").show();'.PHP_EOL;
break;
case 3:
echo '$("#dv_con_type1").show();'.PHP_EOL;
echo '$("#dv_con_type2").show();'.PHP_EOL;
echo '$("#dv_con_type3").hide();'.PHP_EOL;
break;
case 4:
echo '$("#dv_con_type1").show();'.PHP_EOL;
echo '$("#dv_con_type2").show();'.PHP_EOL;
echo '$("#dv_con_type3").hide();'.PHP_EOL;
break;
default:
echo '$("#dv_con_type1").hide();'.PHP_EOL;
echo '$("#dv_con_type2").hide();'.PHP_EOL;
echo '$("#dv_con_type3").hide();'.PHP_EOL;
break;
}
?>
$("#dv_sc_type").change(function() {
var type = $(this).val();
switch(type) {
case "1":
$("#dv_con_type1").show();
$("#dv_con_type2").show();
$("#dv_con_type3").show();
break;
case "2":
$("#dv_con_type1").show();
$("#dv_con_type2").show();
$("#dv_con_type3").show();
break;
case "3":
$("#dv_con_type1").show();
$("#dv_con_type2").show();
$("#dv_con_type3").hide();
break;
case "4":
$("#dv_con_type1").show();
$("#dv_con_type2").show();
$("#dv_con_type3").hide();
break;
default:
$("#dv_con_type1").hide();
$("#dv_con_type2").hide();
$("#dv_con_type3").hide();
break;
}
});
});
</script>
답변 2
ajax가 어쩌면 편한 방법일 수 있겠습니다.
지금 코드로 하자면
<select name="dv_sc_type" id="dv_sc_type">
<option value=''>전체</option>
<?php
$dv_sql = "select * from {$g5['delivery_table']}";
$dv_result = sql_query($dv_sql);
for ($i=1; $dv_row=sql_fetch_array($dv_result); $i++) {
echo '<option value="'.$i.'" '.get_selected($i, $dv_row['dv_no']).'>'.$dv_row['dv_name'].'</option>';
$dv_set[]= $dv_row['dv_no']; 추가, 아래 코드를 보니 3개만 나온다는 가정 하에...
}
?>
</select>
</td>
</tr>
<?php
$dv_sql1 = "select * from {$g5['delivery_table']} where dv_no = '{$dv_set[0]}' ";
$dv_result1 = sql_query($dv_sql1);
$dv = sql_fetch_array($dv_result1);
?>
<tr id="dv_con_type1">
<th scope="row"><?php echo $dv['dv_type1']; ?>(<?php echo $dv['dv_price1']; ?> 원)</th>
<td class="td_extra">
<input type="text" name="it_6" id="it_6" value="<?php echo $it['it_6']; ?>" class="frm_input">
</td>
</tr>
<?php
$dv_sql1 = "select * from {$g5['delivery_table']} where dv_no = '{$dv_set[1]}' ";
$dv_result1 = sql_query($dv_sql1);
$dv = sql_fetch_array($dv_result1);
?>
<tr id="dv_con_type2">
<th scope="row"><?php echo $dv['dv_type2']; ?>(<?php echo $dv['dv_price2']; ?> 원)</th>
<td class="td_extra">
<input type="text" name="it_7" id="it_7" value="<?php echo $it['it_7']; ?>" class="frm_input">
</td>
</tr>
<?php
$dv_sql1 = "select * from {$g5['delivery_table']} where dv_no = '{$dv_set[2]}' ";
$dv_result1 = sql_query($dv_sql1);
$dv = sql_fetch_array($dv_result1);
?>
<tr id="dv_con_type3">
<th scope="row"><?php echo $dv['dv_type3']; ?>(<?php echo $dv['dv_price3']; ?> 원)</th>
<td class="td_extra">
<input type="text" name="it_8" id="it_8" value="<?php echo $it['it_8']; ?>" class="frm_input">
</td>
</tr>
</tbody>
추천할 방법은 아닌 듯합니다.
div_row 값을 그냥 select로 가져오실수 없는 구조입니다.
해당 select 값을 가지고 ajax로 전달해서 데이터를 만들어서 가져오셔야 합니다.
답변을 작성하시기 전에 로그인 해주세요.