list.php에 더보기 버튼
본문
메인에 있던 더보기 버튼을 가져왔더니 그냥 list.php로 던지게 되있드라구요.
현재는 상품이 전부 보이게 되어있는데 리스트에서 상품 최대 6개만 보이고 더보기 누르면 나머지 상품 다 보이게 하고 싶습니다!
고수님들 부탁드려요!!
$skin_file = is_include_path_check($skin_dir.'/'.$ca['ca_mobile_skin']) ? $skin_dir.'/'.$ca['ca_mobile_skin'] : $skin_dir.'/list.10.skin.php';
//echo $skin_file;
if (file_exists($skin_file)) {
// 총몇개
$items = $ca['ca_mobile_list_mod'] * $ca['ca_mobile_list_row'];
// 페이지가 없으면 첫 페이지 (1 페이지)
if ($page < 1) $page = 1;
// 시작 레코드 구함
$from_record = ($page - 1) * $items;
//echo G5_SHOP_URL.'/item.php';
$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);
$list->set_view('sns', true);
$list->set_view('it_icon', 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) { ?>
<div class="sct_item_more"><a href="<?php echo G5_URL;?>/shop/list.php?ca_id=<?=$ca_id?>">더보기</a></div>
<?php } ?>
답변 1
다음과 같은 방법으로 해 볼 수 있을것 같습니다.
참고하셔서 원하시는 형태로 구현하시면 되지 않을까 합니다.
HTML 및 초기로딩
<!-- HTML에서 더보기 버튼 부분 -->
<div class="sct_item_more" id="loadMore"><a href="#">더보기</a></div>
<!-- 실제 리스트가 표시되는 부분 -->
<div id="itemList">
<!-- 여기에 초기에 보여줄 상품 리스트가 들어갑니다. -->
<?php echo $list->run(); ?>
</div>
AJAX 스크립트 추가
<!-- jQuery CDN 추가 -->
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<!-- AJAX 스크립트 -->
<script>
$(document).ready(function() {
var page = 2; // 다음 페이지 번호
$("#loadMore").on("click", function(e) {
e.preventDefault();
$.ajax({
url: "<?php echo G5_URL; ?>/ajax/load_more.php", // 실제로는 이 부분에 적절한 경로를 지정해야 합니다.
type: "POST",
data: { page: page, ca_id: "<?php echo $ca_id; ?>" },
success: function(data) {
// 성공 시 반환된 데이터를 리스트에 추가
$("#itemList").append(data);
page++; // 다음 페이지로 증가
}
});
});
});
</script>
서버측 코드추가
// ajax/load_more.php
// 이 부분에 필요한 초기화 및 설정 코드를 추가해주세요.
$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)) {
// 나머지 코드는 유사하게 유지됩니다.
$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);
$list->set_view('sns', true);
$list->set_view('it_icon', true);
echo $list->run();
} else {
echo '<div class="sct_nofile">'.str_replace(G5_PATH.'/', '', $skin_file).' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
}
!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.