ajax 로 뷰 페이지를 부를때 div에 안 들어감 채택완료
https://sir.kr/g5_skin/53077">그누보드 - 리스트에서 내용보기 게시판 > 그누보드5 스킨 (sir.kr)
위 스킨에서 착안하여
https://sir.kr/g5_skin/45425">그누보드 - 오피스 멀티뷰어 자료실 게시판 > 그누보드5 스킨 (sir.kr)
이 스킨을 활용해 뷰 쪽에 pdf나 ppt 등을 보여주게 하고 싶어서
ajax로 구현하여 부르면 <div class ="view" > 쪽에 들어가는게 아닌 완전히 새로운 페이지로 들어가 버립니다.
list.skin.php
</p>
<p><div class="view"></p>
<p> </p>
<p><?php</p>
<p>#include_once(G5_BBS_PATH."/view.php");?></p>
<p></div></p>
<p> </p>
<p></div></p>
<p> <script></p>
<p> $(document).on('click', '.bo_tit', function(e){</p>
<p> $.ajax({</p>
<p> url:'<?php echo $board_skin_url?>/view_ajax.php',</p>
<p> type:'POST',</p>
<p> data:'bo_table='+$(this).attr('data-table')+'&wr_id='+$(this).attr('data-id'),</p>
<p> dataType:'html',</p>
<p> success : function(data){</p>
<p> $('.view').html(data);</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p>
view_ajax.php
</p>
<p><?php</p>
<p>include_once('../../../../../common.php');</p>
<p> </p>
<p>$bo_table = $_POST["bo_table"];</p>
<p>$wr_id = $_POST["wr_id"];</p>
<p>?></p>
<p> </p>
<p><?php include_once(G5_BBS_PATH."/view.php");</p>
<p>?>
로 구현하였습니다 현재는

리스트에서 눌렀을때 화면입니다. 여기서 다른 리스트를 클릭하면

이런식으로 전체 화면 자체를 다 가져가 버립니다.
개발자 도구로 확인하면 응답쪽에선 다른 항목들도 표시가 되는데

다 지워버리고 뷰어 항목만 표시가 되는데 ajax 쪽을 손봐야 할까요?
답변 4개
* view_ajax.php
</p>
<p><?php
include_once('../../../../../common.php');
$bo_table = $_POST["bo_table"];
$wr_id = $_POST["wr_id"];</p>
<p>$write_table = $g5['write_prefix'] . $bo_table;</p>
<p>$sql = "
select *
from {$write_table}
where wr_id = '{$wr_id}'
";</p>
<p>$view = sql_fetch($sql);</p>
<p>$html = 0;
if (strstr($view['wr_option'], 'html1'))
$html = 1;
else if (strstr($view['wr_option'], 'html2'))
$html = 2;</p>
<p>$view['content'] = conv_content($view['wr_content'], $html);</p>
<p>echo $view['wr_content'];</p>
<p>
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p><style></p>
<p>@import url(<a href="http://cdn.jsdelivr.net/font-nanum/1.0/nanumbarungothic/nanumbarungothic.css);" target="_blank" rel="noopener noreferrer">http://cdn.jsdelivr.net/font-nanum/1.0/nanumbarungothic/nanumbarungothic.css);</a></p>
<p>#viewerDiv { position:relative; height:0px; overflow:hidden; max-width:100%; }</p>
<p>#viewerIframe { position:absolute; top:0px; left:0px; width:100%; height:100%; display:block; }</p>
<p>.listTd { font-size:16px; color:#000000; font-family:'Nanum Barun Gothic'; padding:12px; text-align:center; cursor:pointer; background-color:#eeeeee; }</p>
<p></style> </p>
<p><script></p>
<p>officeList = [".pdf", ".ppt", "pptx", ".doc", "docx", ".xls", "xlsx"];</p>
<p>function viewerFile() {</p>
<p> officeNumber = 0;</p>
<p> for (office in officeList) if (officeList[office] == arguments[0].toLowerCase().slice(-4)) officeNumber += 1;</p>
<p> if (officeNumber < 1) viewerOffice = "지원하지 않는 파일 형식입니다. 다운로드 받아 확인 하세요";</p>
<p> else viewerOffice = "<iframe id=viewerIframe src=<a href="https://docs.google.com/gview?url="" target="_blank" rel="noopener noreferrer">https://docs.google.com/gview?url="</a> + arguments[0] + "&embedded=true frameborder=0></iframe>";</p>
<p> viewerDiv.innerHTML = viewerOffice;</p>
<p> viewerDiv.style.paddingBottom = arguments[1] + '%'; </p>
<p>}</p>
<p> </p>
<p>viewerHeight = [<?php echo $view['wr_1']; ?>];</p>
<p><?php</p>
<p>for ($i=0; $i<count($view['file']); $i++) {</p>
<p> if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) {</p>
<p>?></p>
<p>downHref = "<?php echo $view['file'][$i]['href']; ?>";</p>
<p>this["viewer_" + <?php echo $i + 1; ?>] = ["<?php echo $view['file'][$i]['path']."/".$view['file'][$i]['file']; ?>", "<?php echo $view['file'][$i]['source']; ?>", downHref.replace(/amp;/gi, ""), viewerHeight[<?php echo $i; ?>]];</p>
<p><?php</p>
<p> }</p>
<p>}</p>
<p>?></p>
<p>document.write("<div id=viewerDiv style=width:100%></div>");</p>
<p>document.write("<table style=width:100%;table-layout:fixed;background-color:#cccccc;margin-top:6px cellpadding=0 cellspacing=1>");</p>
<p>document.write("<col width=80%></col><col width=20%></col>");</p>
<p>for (viewerTotal = 0; this["viewer_" + (viewerTotal + 1)]; viewerTotal++);</p>
<p>for (file = 1; file <= viewerTotal; file++) {</p>
<p> document.write("<tr><td id=file_" + file + " class=listTd>" + this['viewer_' + file][1] + "</td><td id=download_" + file + " class=listTd>다운로드</td></tr>");</p>
<p> this["file_" + file].thisNum = this["download_" + file].thisNum = file;</p>
<p> this["file_" + file].fileSrc = this['viewer_' + file][0]; </p>
<p> this["file_" + file].onclick = function() {</p>
<p> viewerFile(this.fileSrc, parent["viewer_" + this.thisNum][3]);</p>
<p> for (file = 1; file <= viewerTotal; file++) {</p>
<p> parent["file_" + file].style.backgroundColor = parent["download_" + file].style.backgroundColor = '#eeeeee';</p>
<p> }</p>
<p> parent["file_" + this.thisNum].style.backgroundColor = '#f7d7e4';</p>
<p> parent["download_" + this.thisNum].style.backgroundColor = '#d5e6f9';</p>
<p> scrollTo(0, 0);</p>
<p> }</p>
<p> this["download_" + file].onclick = function() {</p>
<p> location.href = parent['viewer_' + this.thisNum][2];</p>
<p> }</p>
<p>}</p>
<p>document.write("</table>");</p>
<p>file_1.onclick();</p>
<p></script></p>
<p>
제 코드는 아니지만 스킨의 office.php 파일의 소스코드 입니다.
여기서 문제가 되는 코드가 있을까요?
파일 첨부가 안 되어서.. 댓글로 올립니다
문제시 바로 삭제하겠습니다
답변에 대한 댓글 4개
자세한 거는 해당 페이지를 봐야
알 수 있을 듯합니다
그누보드 기본파일도 아니군요.
해당 페이지 주소(URL)을 올려 보세요.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
위에 eyekiss님이 말씀하신대로 이름도 바꿔보고 했는데 같은 상태입니다
댓글을 작성하려면 로그인이 필요합니다.
<div id="view_content" >
이렇게 id 로 변경을 하시고..
success : function(data){
$('#view_content').html(data);
}
결과값을 아이디로 지정해서 넣어보세요.
답변에 대한 댓글 5개
개발자도구(F12)로 확인을 해보세요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
올려주신 코드로는 입력한 게시글 내용만 표시가 되고 있습니다
제가 생각했던건 비타주리님의 멀티 게시판
즉, 첨부파일에 pdf 나 ppt 같은 파일이 있을때 바로 뷰어로 보여주는 스킨을 사용하고 있어서
bbs/view.php 자체를 불러오고 싶은 상황입니다