sel_supply_process 함수를 실행 문의
본문
기존 추가옵션의 셀렉트박스를 li 태그로 바꾸고자 몇가지 제이쿼리 소스를 변경하였습니다.
DB에서 정보를 가져와 순서대로 노출은 되지만 선택항목을 클릭하면
sel_supply_process 함수가 실행되지를 않는데요.
어떻게 하면 sel_supply_process 함수를 실행시킬 수 있을까요?
( 제이쿼리 초보이다 보니 몇주째 해메고 있네요. 고수님들의 한수 부탁드립니다. )
js/shop.js 158번째 줄
$(document).on("click", ".it_supply li", function() {
var $el = $(this);
var val = $(this).val();
if(val == "")
return;
if(supply_add)
sel_supply_process($el, true);
});
lib/shop.lib.php 1046번째 줄
// 상품 추가옵션
function get_item_supply($it_id, $subject, $is_div='')
{
global $g5;
if(!$it_id || !$subject)
return '';
$sql = " select * from {$g5['g5_shop_item_option_table']} where io_type = '1' and it_id = '$it_id' and io_use = '1' order by io_no asc ";
$result = sql_query($sql);
if(!sql_num_rows($result))
return '';
$str = '';
$subj = explode(',', $subject);
$subj_count = count($subj);
$options = array();
// 옵션항목 배열에 저장
for($i=0; $row=sql_fetch_array($result); $i++) {
$opt_id = explode(chr(30), $row['io_id']);
if($opt_id[0] && !array_key_exists($opt_id[0], $options))
$options[$opt_id[0]] = array();
if(strlen($opt_id[1])) {
if($row['io_price'] >= 0)
$price = ' + '.number_format($row['io_price']).'원';
else
$price = ' '.number_format($row['io_price']).'원';
$io_stock_qty = get_option_stock_qty($it_id, $row['io_id'], $row['io_type']);
if($io_stock_qty < 1)
$soldout = ' [품절]';
else
$soldout = '';
$options[$opt_id[0]][] = '<li value="'.$opt_id[1].','.$row['io_price'].','.$io_stock_qty.','.$row['io_vr'].'">'.$opt_id[1].$price.$soldout.'</li>';
}
}
// 옵션항목 만들기
for($i=0; $i<$subj_count; $i++) {
$opt = $options[$subj[$i]];
$opt_count = count($opt);
if($opt_count) {
$seq = $i + 1;
if($is_div === 'div') {
$str .= '<div class="get_item_supply">'.PHP_EOL;
$str .= '<label for="it_supply_'.$seq.'">'.$subj[$i].'</label>'.PHP_EOL;
} else {
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_supply_'.$seq.'">'.$subj[$i].'</label></th>'.PHP_EOL;
}
$select = '<ul id="it_supply_'.$seq.'" class="it_supply">'.PHP_EOL;
$select .= '<li value="">선택</li>'.PHP_EOL;
for($k=0; $k<$opt_count; $k++) {
$opt_val = $opt[$k];
if($opt_val) {
$select .= $opt_val.PHP_EOL;
}
}
$select .= '</ul>'.PHP_EOL;
if($is_div === 'div') {
$str .= '<span class="td_sit_sel">'.$select.'</span>'.PHP_EOL;
$str .= '</div>'.PHP_EOL;
} else {
$str .= '<td class="td_sit_sel">'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
}
}
return $str;
}
답변 3
크롬 요소검사를 해보시면 어디서 오류가 뜨는지 대략 보입니다.
이부분을 이용하여 수정을 해가시고
alert(), console.log() 이러한 함수들을 이용해서 직접 확인해 보시는게 빠릅니다.
그리고 이렇게 수정된 경우 url을 올려주셔야 테스트가 편하게 이루어 질 수 있을 듯합니다.
js/shop.js 158번째 줄
$(document).on("click", ".it_supply li", function() {
var $el = $(this);
var val = $(this).val();
if(val == "")
return;
if(supply_add)
sel_supply_process($el, true);
});
lib/shop.lib.php 1046번째 줄
// 상품 추가옵션
function get_item_supply($it_id, $subject, $is_div='')
{
global $g5;
if(!$it_id || !$subject)
return '';
$sql = " select * from {$g5['g5_shop_item_option_table']} where io_type = '1' and it_id = '$it_id' and io_use = '1' order by io_no asc ";
$result = sql_query($sql);
if(!sql_num_rows($result))
return '';
$str = '';
$subj = explode(',', $subject);
$subj_count = count($subj);
$options = array();
// 옵션항목 배열에 저장
for($i=0; $row=sql_fetch_array($result); $i++) {
$opt_id = explode(chr(30), $row['io_id']);
if($opt_id[0] && !array_key_exists($opt_id[0], $options))
$options[$opt_id[0]] = array();
if(strlen($opt_id[1])) {
if($row['io_price'] >= 0)
$price = ' + '.number_format($row['io_price']).'원';
else
$price = ' '.number_format($row['io_price']).'원';
$io_stock_qty = get_option_stock_qty($it_id, $row['io_id'], $row['io_type']);
if($io_stock_qty < 1)
$soldout = ' [품절]';
else
$soldout = '';
$options[$opt_id[0]][] = '<li value="'.$opt_id[1].','.$row['io_price'].','.$io_stock_qty.'">'.$opt_id[1].$price.$soldout.'</li>';
}
}
// 옵션항목 만들기
for($i=0; $i<$subj_count; $i++) {
$opt = $options[$subj[$i]];
$opt_count = count($opt);
if($opt_count) {
$seq = $i + 1;
if($is_div === 'div') {
$str .= '<div class="get_item_supply">'.PHP_EOL;
$str .= '<label for="it_supply_'.$seq.'">'.$subj[$i].'</label>'.PHP_EOL;
} else {
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_supply_'.$seq.'">'.$subj[$i].'</label></th>'.PHP_EOL;
}
$select = '<ul id="it_supply_'.$seq.'" class="it_supply">'.PHP_EOL;
$select .= '<li value="">선택</li>'.PHP_EOL;
for($k=0; $k<$opt_count; $k++) {
$opt_val = $opt[$k];
if($opt_val) {
$select .= $opt_val.PHP_EOL;
}
}
$select .= '</ul>'.PHP_EOL;
if($is_div === 'div') {
$str .= '<span class="td_sit_sel">'.$select.'</span>'.PHP_EOL;
$str .= '</div>'.PHP_EOL;
} else {
$str .= '<td class="td_sit_sel">'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
}
}
return $str;
}