안녕하세요 도움을 받고싶습니다.
본문
index에 latest 최신글을 불러오고 더 보기 기능을 눌렀을 때 다른 최신글을 불러오도록 하고싶은데
ajax를 이용하라하셔서 ajax를 해봤는데도 오류가 생기고 실행도 되지 않아서 도움을 청합니다.
어떤식으로 ajax를 작성하는게 좋을까요??
더 보기 버튼을 눌렀을 때 최신글이 나왔으면 좋겠습니다!~!!
답변 3
카테고리를 누르면 카테고리별 게시판이 불러옵니다.
예전에 만들었던건데 참고하세요
php부분 / 함수를 사용 (꼭 함수를 사용하지 않아도 됨)
기존에 에러가 있다면, 데이터를 json으로 주고 받지 않아서 에러가 날 확률이 높습니다.
<?php
include_once("./_common.php");
ajaxGetlist($target_board, $ca_name);
//상단에 호출된 함수 (카테고리별로 리스트를 가져오는 함수)
function ajaxGetlist($target_board, $ca_name=''){
//게시판 전체를 불러올수 있는 함수
//ca_name를 넘기면 카테고리별로 리스트 불러옴
//$list = get_default_list('notice','카테고리 이름');
global $g5;
$write_table = $g5['write_prefix'].$target_board;
$ca_name == "전체" ? $WHERE = "" : $AND = "AND ca_name = '{$ca_name}'";
$sql = "SELECT * FROM {$write_table} WHERE LENGTH(wr_subject) > 0 {$AND}";
$result = sql_query($sql);
$cnt = sql_num_rows($result);
while ($row = sql_fetch_array($result)){
$temp = new stdClass();
$temp -> cnt = $cnt;
$temp -> wr_id = $row['wr_id'];
$temp -> ca_name = $row['ca_name'];
$temp -> wr_subject = $row['wr_subject'];
$temp -> wr_content = $row['`wr_content'];
$temp -> mb_id = $row['mb_id'];
$temp -> wr_name = $row['wr_name'];
//$temp -> wr_datetime = $row['wr_datetime'];
$temp -> wr_last = date('n/j', strtotime($row['wr_last']));
$temp -> wr_1 = $row['wr_1'];
$temp -> href = G5_BBS_URL.'/board.php?bo_table='.$target_board.'&wr_id='.$row['wr_id'];
$array[] = $temp;
}
echo json_encode($array);
}
?>
출력부분 (제이쿼리 clone를 사용하려고 만들었는데, 제이쿼리나 자바스트립트에서 append해도 됩니다.)
<!--출력부분, jquery clone()을 사용할 예정, append()를 통해서 직접 추가해도 됨-->
<section class="club_contents club_top_contents" id="insert_section">
<div class="notice ft_cnt">
<ul class="club_item" id="item_ul">
<!-- <li></li>-->
</ul>
</div>
</section>
<!--클론을 위한 테그-->
<section style="display: none">
<ul>
<li id="clone_tag">
<div class="latested-subject">
<a></a>
</div>
<span class="date_btn"></span>
</li>
</ul>
</section>
제이쿼리 부분(제이쿼리 클론을 사용했는데 valu.wr_subject 처럼 변수를 불러와 append해도 됩니다.)
temp를 콘솔에 내용을 출력해 보시면 이해할 수 있을겁니다.
<script>
function ajaxGetlist(target, mode){
//ajax 폴더 위치
var ajaxUrl = g5_url+'/theme/pbcm/ajax/';
$.ajax({
url: ajaxUrl + "ajaxGetlist.php",
type : "post",
data : {
target_board : target,
ca_name : mode,
}
}).done(function(result){
var temp = JSON.parse(result);
$('#item_ul').empty();
$.each(temp, function (index, value){
var $li = $('#clone_tag').clone().removeAttr('id');
$('#item_ul').append($li);
var $last_li = $('#item_ul li').last();
$last_li.find('a').text('['+value.ca_name+'] '+value.wr_subject);
$last_li.find('a').attr('href', value.href);
$last_li.find('.date_btn').text(value.wr_last);
});
});
}
</script>
쿼리의 리미트를 걸어서 하고 있나요?
해 보신 소스를 올려 보세요.
답변을 작성하시기 전에 로그인 해주세요.