테스트 사이트 - 개발 중인 베타 버전입니다

뷰페이지 비동기로 호출하기 채택완료

더루차 2년 전 조회 2,047

https://sir.kr/qa/99947">그누보드 QA - 게시판 뷰페이지와 리스트페이지 동시에 (sir.kr)

에서 도움을 받아 

board.php -> board2.php 로 이동

왼쪽엔                                                             오른쪽

list.php                                                           view.php

 

형식으로 나오고 있습니다.

제가 하고싶은건 list.php에서 게시글을 클릭하면 뷰페이지만 불러와서 화면 깜빡임 없이

게시글이 변경되도록 하고 싶습니다.

 

현재는 board2.php 에

</p>

<p><div id ="rist" style='float:left;width:30%;overflow-y: scroll;height : 700px;'></p>

<p> </p>

<p><?php</p>

<p> </p>

<p>include_once (G5_BBS_PATH.'/list2.php');</p>

<p> </p>

<p>if(!$wr_id) $wr_id= $list[0][wr_id];</p>

<p> </p>

<p>?></p>

<p> </p>

<p></div></p>

<p>

 </p>

<p><div id = "biew" style='float:right;width:70%;padding: 0px 10px 0px 10px;overflow-y: scroll; height :700px;'></div></p>

<p><script></p>

<p>$(function(){</p>

<p>    $.ajax({</p>

<p>            url: '<?php echo $board_skin_url?>/list2.skin.php'</p>

<p>            ,type:"post"</p>

<p>            ,dataType:'php'</p>

<p>            ,data : {<?php echo $wr_id?>}</p>

<p>            ,error:function(error){</p>

<p>                alert("ERROR!"+error);</p>

<p>            } // error end</p>

<p>            ,success:function(view){</p>

<p>                $("#biew").append(<?php include_once(G5_BBS_PATH.'/view.php')?>)</p>

<p>            } // success end</p>

<p> </p>

<p>        });</p>

<p>        });</p>

<p></script></p>

<p>

 </p>

<p><?php include_once(G5_PATH.'/tail.sub.php');?></p>

<p>

로 ajax로 해보려고 했는데 도저히 안 되어 문의 드립니다..

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트

이렇게 까지 알려들릴 수는 없지만 오랜만에 소스를 다시 봤네요...

아래 처럼 하면 될것 같습니다.

 

</p>

<p>$(function()

{ 

    $.ajax({ 

        url : '<?php echo BBS_URL?>/view.php',

        type : "post",

        dataType : "html",

        data : {

            bo_table : '게시판명',

            wr_id : <?php echo $wr_id?>

        },

        error : function(error) { 

            alert("ERROR!"+error); 

        }, // error end

        success : function(view) { 

            // 먼저 alert(view.responseText); 값이 어떤게 나오는지 확인해보세요

            $("#biew").html($(view.responseText)) 

        } // success end 

    }); 

}); </p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

더루차
2년 전
감사합니다 이때까진 반응이 없었는데 이젠 alert(error) 라도 뜨네요 ㅠ

현재 ajax가 list.php 에서 $wr_id와 bo_table 값을 받아서
view.php에서 그걸 가지고 오는 부분인 거네요
더루차
2년 전
alert(view.responseText); 확인한 결과
계속해서 undefined만 발생하고 있습니다
biew 부분에는 표시되지 않더라구요

댓글을 작성하려면 로그인이 필요합니다.

2년 전
예시..
list2.php에서 onClick="rt_view('<?=$row[wr_id]?>')" 이런식으로 함수 호출을 넣어주고

</p>

<p><script>

function rt_view(set_wr_id){

    $.ajax({

        url: '<?php echo $board_skin_url?>/view.php'

        ,type:"get"

        ,dataType:'html'

        ,data : {wr_id = set_wr_id}

        ,error:function(error){

            alert("ERROR!"+error);

        } // error end

        ,success:function(view){

            $("#biew").load(view)

        } // success end

 

    });

}

</script></p>

<p>

이런식으로 코드를 구현해 보시는게 어떠실까요...

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

더루차
2년 전
아직 ajax 자체의 흐름을 자세히 알지 못하지만 도와주신 코드로 조금 더 공부 해 보겠습니다..

댓글을 작성하려면 로그인이 필요합니다.

더 자세한 내용이 궁금하시면 여기 방문하세요

같이 얘기나누며 문제해결에 도움이 되도록 하세요

 

https://open.kakao.com/o/gzNuQjhe" rel="nofollow noreferrer noopener" target="_blank">https://open.kakao.com/o/gzNuQjhe

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p><code>success:function(view){ </code></p>

<p><code>    $("#biew").html(view.responseText) </code></p>

<p><code>} // success end</code></p>

<p>

 

통신 결과값이 view.responseText 에 저장되어 있습니다

view.responseText 이 값들이 html 이라면

 

$("#biew").html($(view.responseText))

 

이렇게 감싸주면 될것 같네요

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

더루차
2년 전
댓글 감사합니다 말씀하신대로 입력해 보았는데 아무것도 나오지 않고 있습니다 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

플래토
2년 전

$("#divId").load()를 사용하는건 어떠실까요?

 

https://m.blog.naver.com/x2658/221951605169

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

더루차
2년 전
감사합니다 한번 확인해서 정독해 보겠습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인