영카트 상품 더보기 ajax 오류
본문
카테고리 리스트에서 상품 더 보기를 눌렀을 때
상품이 더 등록되어 있지만 상품이 더 없다고 노출되네요
초보라 어떤 부분이 오류가 있는지 너무 어렵네요 ㅠㅠ
list.php 부분입니다
<?php
include_once('./_common.php');
$sql = " select *
from {$g5['g5_shop_category_table']}
where ca_id = '$ca_id'
and ca_use = '1' ";
$ca = sql_fetch($sql);
if (!$ca['ca_id'])
alert('등록된 분류가 없습니다.', G5_SHOP_URL);
// 테마미리보기 스킨 등의 변수 재설정
if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true) {
$ca['ca_mobile_skin'] = (isset($tconfig['ca_mobile_skin']) && $tconfig['ca_mobile_skin']) ? $tconfig['ca_mobile_skin'] : $ca['ca_mobile_skin'];
$ca['ca_mobile_img_width'] = (isset($tconfig['ca_mobile_img_width']) && $tconfig['ca_mobile_img_width']) ? $tconfig['ca_mobile_img_width'] : $ca['ca_mobile_img_width'];
$ca['ca_mobile_img_height'] = (isset($tconfig['ca_mobile_img_height']) && $tconfig['ca_mobile_img_height']) ? $tconfig['ca_mobile_img_height'] : $ca['ca_mobile_img_height'];
$ca['ca_mobile_list_mod'] = (isset($tconfig['ca_mobile_list_mod']) && $tconfig['ca_mobile_list_mod']) ? $tconfig['ca_mobile_list_mod'] : $ca['ca_mobile_list_mod'];
$ca['ca_mobile_list_row'] = (isset($tconfig['ca_mobile_list_row']) && $tconfig['ca_mobile_list_row']) ? $tconfig['ca_mobile_list_row'] : $ca['ca_mobile_list_row'];
}
// 본인인증, 성인인증체크
if(!$is_admin) {
$msg = shop_member_cert_check($ca_id, 'list');
if($msg)
alert($msg, G5_SHOP_URL);
}
$g5['title'] = $ca['ca_name'];
include_once(G5_MSHOP_PATH.'/_head.php');
// 스킨경로
$skin_dir = G5_MSHOP_SKIN_PATH;
if($ca['ca_mobile_skin_dir']) {
if(preg_match('#^theme/(.+)$#', $ca['ca_mobile_skin_dir'], $match))
$skin_dir = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1];
else
$skin_dir = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$ca['ca_mobile_skin_dir'];
if(is_dir($skin_dir)) {
$skin_file = $skin_dir.'/'.$ca['ca_mobile_skin'];
if(!is_file($skin_file))
$skin_dir = G5_MSHOP_SKIN_PATH;
} else {
$skin_dir = G5_MSHOP_SKIN_PATH;
}
}
define('G5_SHOP_CSS_URL', str_replace(G5_PATH, G5_URL, $skin_dir));
?>
<script>
var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
</script>
<script src="<?php echo G5_JS_URL; ?>/shop.mobile.list.js"></script>
<div id="sct">
<?php
// 상단 HTML
echo '<div id="sct_hhtml">'.conv_content($ca['ca_mobile_head_html'], 1).'</div>';
$cate_skin = $skin_dir.'/listcategory.skin.php';
if(!is_file($cate_skin))
$cate_skin = G5_MSHOP_SKIN_PATH.'/listcategory.skin.php';
include $cate_skin;
// 테마미리보기 베스트상품 재설정
if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true) {
if(isset($theme_config['ca_mobile_list_best_mod']))
$theme_config['ca_mobile_list_best_mod'] = (isset($tconfig['ca_mobile_list_best_mod']) && $tconfig['ca_mobile_list_best_mod']) ? $tconfig['ca_mobile_list_best_mod'] : 0;
if(isset($theme_config['ca_mobile_list_best_row']))
$theme_config['ca_mobile_list_best_row'] = (isset($tconfig['ca_mobile_list_best_row']) && $tconfig['ca_mobile_list_best_row']) ? $tconfig['ca_mobile_list_best_row'] : 0;
}
// 분류 Best Item
$list_mod = (isset($theme_config['ca_mobile_list_best_mod']) && $theme_config['ca_mobile_list_best_mod']) ? (int)$theme_config['ca_mobile_list_best_mod'] : $ca['ca_mobile_list_mod'];
$list_row = (isset($theme_config['ca_mobile_list_best_row']) && $theme_config['ca_mobile_list_best_row']) ? (int)$theme_config['ca_mobile_list_best_row'] : $ca['ca_mobile_list_row'];
$limit = $list_mod * $list_row;
$best_skin = G5_MSHOP_SKIN_PATH.'/list.best.10.skin.php';
$sql = " select *
from {$g5['g5_shop_item_table']}
where ( ca_id like '$ca_id%' or ca_id2 like '$ca_id%' or ca_id3 like '$ca_id%' )
and it_use = '1'
and it_type4 = '1'
order by it_order, it_id desc
limit 0, $limit ";
$list = new item_list($best_skin, $list_mod, $list_row, $ca['ca_mobile_img_width'], $ca['ca_mobile_img_height']);
$list->set_query($sql);
$list->set_mobile(true);
$list->set_view('it_img', true);
$list->set_view('it_id', false);
$list->set_view('it_name', true);
$list->set_view('it_price', true);
echo $list->run();
// 상품 출력순서가 있다면
if ($sort != "")
$order_by = $sort.' '.$sortodr.' , it_order, it_id desc';
else
$order_by = 'it_order, it_id desc';
$error = '<p class="sct_noitem">등록된 상품이 없습니다.</p>';
// 리스트 스킨
$skin_file = is_include_path_check($skin_dir.'/'.$ca['ca_mobile_skin']) ? $skin_dir.'/'.$ca['ca_mobile_skin'] : $skin_dir.'/list.10.skin.php';
if (file_exists($skin_file)) {
$sort_skin = $skin_dir.'/list.sort.skin.php';
if(!is_file($sort_skin))
$sort_skin = G5_MSHOP_SKIN_PATH.'/list.sort.skin.php';
include $sort_skin;
// 총몇개
$items = $ca['ca_mobile_list_mod'] * $ca['ca_mobile_list_row'];
// 페이지가 없으면 첫 페이지 (1 페이지)
if ($page < 1) $page = 1;
// 시작 레코드 구함
$from_record = ($page - 1) * $items;
$list = new item_list($skin_file, $ca['ca_mobile_list_mod'], $ca['ca_mobile_list_row'], $ca['ca_mobile_img_width'], $ca['ca_mobile_img_height']);
$list->set_category($ca['ca_id'], 1);
$list->set_category($ca['ca_id'], 2);
$list->set_category($ca['ca_id'], 3);
$list->set_is_page(true);
$list->set_mobile(true);
$list->set_order_by($order_by);
$list->set_from_record($from_record);
$list->set_view('it_img', true);
$list->set_view('it_id', false);
$list->set_view('it_name', true);
$list->set_view('it_price', true);
echo $list->run();
// where 된 전체 상품수
$total_count = $list->total_count;
}
else
{
echo '<div class="sct_nofile">'.str_replace(G5_PATH.'/', '', $skin_file).' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
}
?>
<?php
if($i > 0 && $total_count > $items) {
$qstr1 .= 'ca_id='.$ca_id;
$qstr1 .='&sort='.$sort.'&sortodr='.$sortodr;
$ajax_url = G5_SHOP_URL.'/ajax.list.php?'.$qstr1;
?>
<div class="li_more">
<p id="item_load_msg"><img src="<?php echo G5_SHOP_CSS_URL; ?>/img/loading.gif" alt="로딩이미지" ><br>잠시만 기다려주세요.</p>
<div class="li_more_btn">
<button type="button" id="btn_more_item" data-url="<?php echo $ajax_url; ?>" data-page="<?php echo $page; ?>">MORE ITEM +</button>
</div>
</div>
<?php } ?>
<?php
// 하단 HTML
echo '<div id="sct_thtml">'.conv_content($ca['ca_mobile_tail_html'], 1).'</div>';
?>
</div>
<?php
include_once(G5_MSHOP_PATH.'/_tail.php');
echo "\n<!-- {$ca['ca_mobile_skin']} -->\n";
?>
ajax.list.php 입니다
<?php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/json.lib.php');
$data = array();
$sql = " select *
from {$g5['g5_shop_category_table']}
where ca_id = '$ca_id'
and ca_use = '1' ";
$ca = sql_fetch($sql);
if (!$ca['ca_id'])
die(json_encode($data['error'] = '등록된 분류가 없습니다.'));
// 스킨경로
$skin_dir = G5_MSHOP_SKIN_PATH;
if($ca['ca_mobile_skin_dir']) {
$skin_dir = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$ca['ca_mobile_skin_dir'];
if(is_dir($skin_dir)) {
$skin_file = $skin_dir.'/'.$ca['ca_mobile_skin'];
if(!is_file($skin_file))
$skin_dir = G5_MSHOP_SKIN_PATH;
} else {
$skin_dir = G5_MSHOP_SKIN_PATH;
}
}
$skin_file = $skin_dir.'/'.$ca['ca_mobile_skin'];
// 상품 출력순서가 있다면
if ($sort != "")
$order_by = $sort.' '.$sortodr.' , it_order, it_id desc';
else
$order_by = 'it_order, it_id desc';
// 총몇개
$items = $ca['ca_mobile_list_mod'] * $ca['ca_mobile_list_row'];
// 페이지가 없으면 첫 페이지 (1 페이지)
if ($page < 1) $page = 1;
$page++;
// 시작 레코드 구함
$from_record = ($page - 1) * $items;
ob_start();
$list = new item_list($skin_file, $ca['ca_mobile_list_mod'], $ca['ca_mobile_list_row'], $ca['ca_mobile_img_width'], $ca['ca_mobile_img_height']);
$list->set_category($ca['ca_id'], 1);
$list->set_category($ca['ca_id'], 2);
$list->set_category($ca['ca_id'], 3);
$list->set_is_page(true);
$list->set_mobile(true);
$list->set_order_by($order_by);
$list->set_from_record($from_record);
$list->set_view('it_img', true);
$list->set_view('it_id', false);
$list->set_view('it_name', true);
$list->set_view('it_price', true);
echo $list->run();
$content = ob_get_contents();
ob_end_clean();
$data['item'] = $content;
$data['error'] = '';
$data['page'] = $page;
die(json_encode($data));
?>
너무 많은 내용을 올린 것 같아 정말 죄송합니다.
상품이 적을 때는 몰랐지만 많이 등록된 시점에 이런 오류가 있다는걸 알게되니 참 당황스럽습니다
!-->!-->답변 3
위 부분은 소스상으로만 파악하기에는 어려움이 있습니다.
사이트 주소와 위 부분 처리가 어렵다면 제작의뢰를 통해 진행하시는게 수월해 보일수 있다 판단이 됩니다.
원인을 찾아 해결했습니다. 혹시나 영카트 아리아나벤티 님께서 만드신 테마를 사용하시는 분들은 모든 테마가 같은 오류가 있을거라 생각됩니다. 저는 아래 링크한테마가 아닌 다른 테마 사용 중인데 같은 오류였습니다.
3개 링크 참고하시면 해결하실 수 있습니다.
위의 수정처럼했는데도 안된다면,
다른 경우일지 몰라도 이런경우에
만약 list.php의 파일의 카테고리를 추가했다면
list.php의
$list->set_category($ca['ca_id'], 1);
$list->set_category($ca['ca_id'], 2);
$list->set_category($ca['ca_id'], 3);
추가해서
$list->set_category($ca['ca_id'], 4); 이런식으로 추가를 했다면
ajax.list.php 파일에도
위의 값을 아래의 파일에도 동일하게 적용해주세요.
답변을 작성하시기 전에 로그인 해주세요.