게시판 리스트에서 ajax로 클릭한 게시글의 데이터를 json으로 가져와 모달창으로 띄우기
본문
뷰페이지를 안쓰고, 리스트페이지에서 해당 게시글을 클릭하면 클릭한 게시글의 db을 json으로 가져와서
해당 데이터들을 모달로 띄우려고 합니다...;;
/bbs/ajax.consultant.php <-- 새로 추가한 페이지
<?php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/json.lib.php');
$name = isset($_REQUEST['name']) ? strip_tags($_REQUEST['name']) : '';
$bo_table = 'consultant';
if ($bo_table) {
$board = get_board_db($bo_table, true);
if (isset($board['bo_table']) && $board['bo_table']) {
set_cookie("ck_bo_table", $board['bo_table'], 86400 * 1);
$gr_id = $board['gr_id'];
$write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
}
}
$data = array();
// 작동이 안되는 이슈로 주석처리
/*$sql = " select wr_subject, wr_content, wr_1, wr_2, wr_3, wr_4
from {$write_table}
where wr_subject = '$name' ";
$consultant = sql_fetch($sql);
if( !$consultant['wr_subject'] )
die(json_encode($data['error']) = '등록된 컨설턴트가 없습니다'));*/
$sql = " select wr_subject, wr_content, wr_1, wr_2, wr_3, wr_4
from {$write_table}
where wr_subject = '$name' ";
$consultant = sql_query($sql);
for($i=0;$row=sql_fetch_array($consultant);$i++){
$data['name'] = $row['wr_subject'];
$data['position'] = $row['wr_1'];
$data['career1'] = explode('|', $row['wr_2']);
$data['career2'] = explode('|', $row['wr_3']);
$data['education'] = $row['wr_4'];
$data['desc'] = $row['wr_content'];
}
$data['error'] = '';
die(json_encode($data));
이렇게 json 으로 뿌려주게끔 만들어놓았습니다.
리스트페이지에 게시글마다 클릭한 게시글의 db만 가져오기위해
data-name="<?php echo $list[$i]['subject']; ?>" 속성을 넣어주고,
list.skin.php
btn.addEventListener('click', function(e){
e.preventDefault();
var name = this.dataset.name;
$.ajax({
url: g5_bbs_url+'/consultant.php?name='+name,
type: "POST",
cache: false,
async: true,
dataType: "json",
success: function(data){
var obj = JSON.parse(data);
console.log(obj);
},
error: function(){
alert('json not found');
}
});
});
이렇게 구현을 했는데... 자꾸 에러쪽으로 넘어갑니다...;;
제가 json을 처음 다뤄보는데... 기존 영카트에 있는 ajax + json 으로 구현된 페이지와 여기저기서 찾아가며 얻은 정보를 가지고 작업했는데 계속 에러만 나서.. 문의남깁니다 ㅠㅠㅠㅠ
!-->!-->답변 2
전체적으로 잘못된 부분이 많아서..
다음글의 소스를 참고하는 게 좋을 듯 싶습니다. https://sir.kr/g5_skin/1080 , https://sir.kr/g5_skin/27519
jquery 로 onclick 이벤트를 처리하는 일반적인 방법은 다음과 같습니다.
(.addEventListener 는 자바스크립트에서 사용하지 않는 문법입니다.)
<a class="btn" href="#">Title</a>
<script>
$('.btn').on('click', function() {
~
});
</script>
일단 그냥 간단히 봤을땐 데이타 타입을 전해주셔서 obj로 따로 하실 필요는 없고 data.name 등으로 그냥 써주셔도 됩니다.
답변을 작성하시기 전에 로그인 해주세요.