게시판 리스트에서 ajax로 클릭한 게시글의 데이터를 json으로 가져와 모달창으로 띄우기

게시판 리스트에서 ajax로 클릭한 게시글의 데이터를 json으로 가져와 모달창으로 띄우기

QA

게시판 리스트에서 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/1080https://sir.kr/g5_skin/27519

 

jquery 로 onclick 이벤트를 처리하는 일반적인 방법은 다음과 같습니다.

(.addEventListener 는 자바스크립트에서 사용하지 않는 문법입니다.)

<a class="btn" href="#">Title</a>

<script>

$('.btn').on('click', function() {

~

});

</script>

 

답변 감사드립니다. jquery 는 잘(?)은 아니고 구현하는데 지장없을 정도는 알고 있습니다...
jquery를 먼저 배우다보니... 스크립트가 취약해서 스크립트를 손에 익히려고 되도록이면 스크립트로 구현하려고 하고 있습니다.

근데 하나 궁금한게 addEventListner 를 사용하지 않는다는건 처음 들어서 그런데... 말씀해주신걸 보고 구글링도 해봤는데 addEventListner 를 사용하지 않는다는 문서, 게시글은 찾아볼 수 가 없었는데요;;

제가 참고할만한 자료가 있을까요?? 다시 한번 답변주셔서 감사드립니다!

업무에서나 여기 Q&A 에서나 addEventListener 를 쓰는 경우는 거의 못본 것 같아서.. 그렇게 생각하고 있었는데요..

찾아보니.. javascript 에서는 addEventListener 를 쓰는 것 같습니다.

죄송합니다. 이 부분은 제가 잘못 알았습니다.

일단 그냥 간단히 봤을땐 데이타 타입을 전해주셔서 obj로 따로 하실 필요는 없고 data.name 등으로 그냥 써주셔도 됩니다.

... 감사합니다;; 원인은... ajax url 앞에 ajax. 을 안붙여줘서 계속 에러 알럿이 떴던거네요;;ㅂㄷㅂㄷ;;

원래 consultant.php 로 만들어서 작업하다가 나중에 앞에다가 ajax. 을 붙여줬던건데..;;

리스트페이지에서 ajax 에 url 부분에는 추가를 안해줘서 계속 에러가 떴던거 같습니다ㅠㅠㅠ

지금은 출력 잘 됩니다! 감사합니다!

답변을 작성하시기 전에 로그인 해주세요.
전체 168
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT