잘못된 부분 찾아주세요
본문
게시물을 맨아래로 내리는 소스입니다.
...
<div id="bo_v_top">
<ul class="bo_v_com">
<?php if ($jump_href) { ?><a href="<?php echo $jump_href ?>" class="btn btn-red btn-xs<?php echo $jump_css ?>" onclick="return confirm('이글을 최신글로 만들까요?')">재등록</a><?php } ?>
<?php if ($jump_back_href) { ?><a href="#" class="btn btn-red btn-xs<?php echo $jump_back_css ?>" onclick="make_back();">맨뒤등록</a><?php } ?>
</ul>
</div>
...
<SCRIPT LANGUAGE="JavaScript">
<!--
function make_back() {
if($insert_num && $insert_num >0) {
$insert_num--;
$row2 =sql_fetch(" select wr_num from $write_table where wr_is_comment = 0 order by wr_num DESC limit $insert_num, 1 ");
$move_wr_num= $row2[wr_num];
if($w =='') $pre_wr_num= $wr_num;
else {
$row3 = sql_fetch(" select wr_num from $write_table where wr_id= '$wr_id' ");
$pre_wr_num= $row3[wr_num];
}
// echo "<br>///check/////////////1.m_wr_num= $move_wr_num ///pre_wr_num= $pre_wr_num"; exit;
if( $move_wr_num )
sql_query("update $write_table set wr_num = wr_num - 1 where wr_num<= $move_wr_num " );
else $move_wr_num = get_next_num($write_table);
if($move_wr_num> $pre_wr_num) $pre_wr_num--;
sql_query("update $write_table set wr_num = $move_wr_num where wr_num= '$pre_wr_num' " );
}
}
-->
</script>
답변 5
JavaScript
안에서
php 정의를 안하고
if($insert_num &&
$식의 변수 및 함수를 못쓰는 걸로알고잇는데요
자바스크립트 안에 db 쿼리를 적용한다는 것이 틀린 부분입니다. ^^
이런 경우 는...
<div id="bo_v_top">
<ul class="bo_v_com">
<?php if ($jump_href) { ?><a href="<?php echo $jump_href ?>" class="btn btn-red btn-xs<?php echo $jump_css ?>" onclick="return confirm('이글을 최신글로 만들까요?')">재등록</a><?php } ?>
<?php if ($jump_back_href) { ?><a href="#" class="btn btn-red btn-xs<?php echo $jump_back_css ?>" onclick="make_back('<?=$insert_num?>');">맨뒤등록</a><?php } ?>
</ul>
</div>
// bbs 경로에 xxx.php 새로 만드세요
<?
include_once("./_common.php");
$insert_num = $_POST['insert_num'];
$write_table = $_POST['write_table'];
if($insert_num && $insert_num > 0) {
$insert_num--;
$row2 =sql_fetch(" select wr_num from $write_table where wr_is_comment = 0 order by wr_num DESC limit $insert_num, 1 ");
$move_wr_num= $row2[wr_num];
if($w =='') {
$pre_wr_num = $wr_num;
} else {
$row3 = sql_fetch(" select wr_num from $write_table where wr_id= '$wr_id' ");
$pre_wr_num= $row3[wr_num];
}
// echo "<br>///check/////////////1.m_wr_num= $move_wr_num ///pre_wr_num= $pre_wr_num"; exit;
if( $move_wr_num ) {
sql_query("update $write_table set wr_num = wr_num - 1 where wr_num<= $move_wr_num " );
} else {
$move_wr_num = get_next_num($write_table);
}
if($move_wr_num> $pre_wr_num) $pre_wr_num--;
sql_query("update $write_table set wr_num = $move_wr_num where wr_num= '$pre_wr_num' " );
}
$msg = "등록 되었습니다.";
die("{\"msg\":\"$msg\"}");
?>
//본문 문서 아래 추가 하세요
<script>
function make_back(in_num) {
var write_table_name = "<?=$write_table?>";
$.ajax({
url: g5_bbs_url+"/xxx.php",
type: "POST",
data: {
insert_num : ""+in_num+"",
write_table : ""+write_table_name+""
},
dataType: "json",
async: false,
cache: false,
success: function(data) {
alert(data.msg); //리턴 결과 메세지
location.reload(); //새로고침
},
error : function(data, status) {
alert("데이타 접근에 실패 하였습니다."); return true;
}
});
}
</script>
ajax 스크립트 소스에서 location.reload(); //새로고침 주석처리 하신 후
크롬 개발자환경 DevTool 열어놓으신 상태에서 실행처리 해보세요 그러신 후 데이터오류 뜨면 Network > Preview 확인 해보세요
"데이타 접근에 실패 하였습니다." 오류만 뜨네요 ㅠㅠㅠㅠ
view.skin.php // 보드 스킨 파일
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$attach_list = '';
if ($view['link']) {
// 링크
for ($i=1; $i<=count($view['link']); $i++) {
if ($view['link'][$i]) {
$attach_list .= '<a class="list-group-item break-word" href="'.$view['link_href'][$i].'" target="_blank">';
$attach_list .= '<span class="label label-warning pull-right view-cnt">'.number_format($view['link_hit'][$i]).'</span>';
$attach_list .= '<i class="fa fa-link"></i> '.cut_str($view['link'][$i], 70).'</a>'.PHP_EOL;
}
}
}
// 가변 파일
$j = 0;
for ($i=0; $i<count($view['file']); $i++) {
if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) {
if ($board['bo_download_point'] < 0 && $j == 0) {
$attach_list .= '<a class="list-group-item"><i class="fa fa-bell red"></i> 다운로드시 <b>'.number_format(abs($board['bo_download_point'])).'</b>'.AS_MP.' 차감 (최초 1회 / 재다운로드시 차감없음)</a>'.PHP_EOL;
}
$file_tooltip = '';
if($view['file'][$i]['content']) {
$file_tooltip = ' data-original-title="'.strip_tags($view['file'][$i]['content']).'" data-toggle="tooltip"';
}
$attach_list .= '<a class="list-group-item break-word view_file_download at-tip" href="'.$view['file'][$i]['href'].'"'.$file_tooltip.'>';
$attach_list .= '<span class="label label-primary pull-right view-cnt">'.number_format($view['file'][$i]['download']).'</span>';
$attach_list .= '<i class="fa fa-download"></i> '.$view['file'][$i]['source'].' ('.$view['file'][$i]['size'].') ';
$attach_list .= '<span class="en font-11 text-muted"><i class="fa fa-clock-o"></i> '.apms_datetime(strtotime($view['file'][$i]['datetime']), "Y.m.d").'</span></a>'.PHP_EOL;
$j++;
}
}
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css" media="screen">', 0);
// 최신글로 점프
$jump_date = date('Y-m-d H:i:s', strtotime($view['wr_datetime'] . ' +12 hours')); // 점프허용 날짜(12시간 후)
$jump_level = 2; // 점프허용 레벨 (2레벨 이상)
$jump_point = 1; // 포인트 차감
// 점프버튼 링크
$jump_href = '';
$jump_back_href = '';
if(($member['mb_id'] == $write['mb_id'] && $member['mb_level'] >= $jump_level) || $is_admin) {
if ($is_admin) {
$jump_href = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&cmd=make_new';
$insert_num = '1';
$jump_back_href = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&cmd=make_back';
$jump_css = ' jump';
} else {
if ($jump_date > G5_TIME_YMDHIS) {
$jump_href = "javascript:alert('점프 가능 시간({$jump_date})이 아닙니다.')";
} else if ($member['mb_point'] < $jump_point) {
$jump_href = "javascript:alert('포인트가 부족합니다. (점프포인트:{$jump_point})')";
} else {
$jump_href = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&cmd=make_new';
$insert_num = '1';
$jump_back_href = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&cmd=make_back';
$jump_css = ' jump';
}
}
}
?>
<?php if($boset['video']) { ?>
<style>.view-wrap .apms-autowrap { max-width:<?php echo (G5_IS_MOBILE) ? '100%' : $boset['video'];?> !important;}</style>
<?php } ?>
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<div class="view-wrap<?php echo (G5_IS_MOBILE) ? ' view-mobile font-14' : '';?>">
<h1><?php if($view['photo']) { ?><img src="<?php echo $view['photo'];?>" class="photo" alt=""><?php } ?><?php echo cut_str(get_text($view['wr_subject']), 70); ?></h1>
<div class="panel panel-default view-head<?php echo ($attach_list) ? '' : ' no-attach';?>">
<div class="panel-heading">
<div class="font-12 text-muted">
<i class="fa fa-user"></i>
<?php echo $view['name']; //등록자 ?><?php echo ($is_ip_view) ? '<span class="print-hide hidden-xs"> ('.$ip.')</span>' : ''; ?>
<?php if($view['ca_name']) { ?>
<span class="hidden-xs">
<span class="sp"></span>
<i class="fa fa-tag"></i>
<?php echo $view['ca_name']; //분류 ?>
</span>
<?php } ?>
<span class="sp"></span>
<i class="fa fa-comment"></i>
<?php echo ($view['wr_comment']) ? '<b class="red">'.number_format($view['wr_comment']).'</b>' : 0; //댓글수 ?>
<span class="sp"></span>
<i class="fa fa-eye"></i>
<?php echo number_format($view['wr_hit']); //조회수 ?>
<span class="pull-right">
<i class="fa fa-clock-o"></i>
<?php echo apms_date($view['date'], 'orangered'); //시간 ?>
</span>
</div>
</div>
<?php
if($attach_list) {
echo '<div class="list-group font-12">'.$attach_list.'</div>'.PHP_EOL;
}
?>
</div>
<?php if ($is_torrent) echo apms_addon('torrent-basic'); // 토렌트 파일정보 ?>
<?php
// 이미지 상단 출력
$v_img_count = count($view['file']);
if($v_img_count && $is_img_head) {
echo '<div class="view-img">'.PHP_EOL;
for ($i=0; $i<=count($view['file']); $i++) {
if ($view['file'][$i]['view']) {
echo get_view_thumbnail($view['file'][$i]['view']);
}
}
echo '</div>'.PHP_EOL;
}
?>
<div class="view-content">
<?php echo get_view_thumbnail($view['content']); ?>
</div>
<?php
// 이미지 하단 출력
if($v_img_count && $is_img_tail) {
echo '<div class="view-img">'.PHP_EOL;
for ($i=0; $i<=count($view['file']); $i++) {
if ($view['file'][$i]['view']) {
echo get_view_thumbnail($view['file'][$i]['view']);
}
}
echo '</div>'.PHP_EOL;
}
?>
<?php if ($good_href || $nogood_href) { ?>
<div class="print-hide view-good-box">
<?php if ($good_href) { ?>
<span class="view-good">
<a href="#" onclick="apms_good('<?php echo $bo_table;?>', '<?php echo $wr_id;?>', 'good', 'wr_good'); return false;">
<b id="wr_good"><?php echo number_format($view['wr_good']) ?></b>
<br>
<i class="fa fa-thumbs-up"></i>
</a>
</span>
<?php } ?>
<?php if ($nogood_href) { ?>
<span class="view-nogood">
<a href="#" onclick="apms_good('<?php echo $bo_table;?>', '<?php echo $wr_id;?>', 'nogood', 'wr_nogood'); return false;">
<b id="wr_nogood"><?php echo number_format($view['wr_nogood']) ?></b>
<br>
<i class="fa fa-thumbs-down"></i>
</a>
</span>
<?php } ?>
</div>
<p></p>
<?php } ?>
<?php if ($is_tag) { // 태그 ?>
<p class="view-tag font-12"><i class="fa fa-tags"></i> <?php echo $tag_list;?></p>
<?php } ?>
<div id="bo_v_top">
<ul class="bo_v_com">
<?php if ($jump_href) { ?><a href="<?php echo $jump_href ?>" class="btn btn-red btn-xs<?php echo $jump_css ?>" onclick="return confirm('이글을 최신글로 만들까요?')">재등록</a><?php } ?>
<?php if ($jump_back_href) { ?><a href="#" class="btn btn-red btn-xs<?php echo $jump_back_css ?>" onclick="make_back('<?=$insert_num?>');">맨뒤등록</a><?php } ?>
</ul>
</div>
<div class="print-hide view-icon">
<div class="pull-right">
<div class="form-group">
<button onclick="apms_print();" class="btn btn-black btn-xs"><i class="fa fa-print"></i> <span class="hidden-xs">프린트</span></button>
<?php if ($scrap_href) { ?>
<a href="<?php echo $scrap_href; ?>" target="_blank" class="btn btn-black btn-xs" onclick="win_scrap(this.href); return false;"><i class="fa fa-tags"></i> <span class="hidden-xs">스크랩</span></a>
<?php } ?>
<?php if ($is_shingo) { ?>
<button onclick="apms_shingo('<?php echo $bo_table;?>', '<?php echo $wr_id;?>');" class="btn btn-black btn-xs"><i class="fa fa-bell"></i> <span class="hidden-xs">신고</span></button>
<?php } ?>
<?php if ($is_admin) { ?>
<?php if ($view['is_lock']) { // 글이 잠긴상태이면 ?>
<button onclick="apms_shingo('<?php echo $bo_table;?>', '<?php echo $wr_id;?>', 'unlock');" class="btn btn-black btn-xs"><i class="fa fa-unlock"></i> <span class="hidden-xs">해제</span></button>
<?php } else { ?>
<button onclick="apms_shingo('<?php echo $bo_table;?>', '<?php echo $wr_id;?>', 'lock');" class="btn btn-black btn-xs"><i class="fa fa-lock"></i> <span class="hidden-xs">잠금</span></button>
<?php } ?>
<?php } ?>
</div>
</div>
<div class="pull-left">
<div class="form-group">
<?php include_once(G5_SNS_PATH."/view.sns.skin.php"); // SNS ?>
</div>
</div>
<div class="clearfix"></div>
</div>
<?php if($is_signature) echo apms_addon('sign-basic'); // 회원서명 ?>
<h3 class="view-comment">Comments</h3>
<?php include_once('./view_comment.php'); ?>
<div class="clearfix"></div>
<div class="print-hide view-btn text-right">
<div class="btn-group">
<?php if ($prev_href) { ?>
<a href="<?php echo $prev_href ?>" class="btn btn-black btn-sm" title="이전글">
<i class="fa fa-chevron-circle-left"></i><span class="hidden-xs"> 이전</span>
</a>
<?php } ?>
<?php if ($next_href) { ?>
<a href="<?php echo $next_href ?>" class="btn btn-black btn-sm" title="다음글">
<i class="fa fa-chevron-circle-right"></i><span class="hidden-xs"> 다음</span>
</a>
<?php } ?>
<?php if ($copy_href) { ?>
<a href="<?php echo $copy_href ?>" class="btn btn-black btn-sm" onclick="board_move(this.href); return false;" title="복사">
<i class="fa fa-clipboard"></i><span class="hidden-xs"> 복사</span>
</a>
<?php } ?>
<?php if ($move_href) { ?>
<a href="<?php echo $move_href ?>" class="btn btn-black btn-sm" onclick="board_move(this.href); return false;" title="이동">
<i class="fa fa-share"></i><span class="hidden-xs"> 이동</span>
</a>
<?php } ?>
<?php if ($delete_href) { ?>
<a href="<?php echo $delete_href ?>" class="btn btn-black btn-sm" title="삭제" onclick="del(this.href); return false;">
<i class="fa fa-times"></i><span class="hidden-xs"> 삭제</span>
</a>
<?php } ?>
<?php if ($update_href) { ?>
<a href="<?php echo $update_href ?>" class="btn btn-black btn-sm" title="수정">
<i class="fa fa-plus"></i><span class="hidden-xs"> 수정</span>
</a>
<?php } ?>
<?php if ($search_href) { ?>
<a href="<?php echo $search_href ?>" class="btn btn-black btn-sm">
<i class="fa fa-search"></i><span class="hidden-xs"> 검색</span>
</a>
<?php } ?>
<a href="<?php echo $list_href ?>" class="btn btn-black btn-sm">
<i class="fa fa-bars"></i><span class="hidden-xs"> 목록</span>
</a>
<?php if ($reply_href) { ?>
<a href="<?php echo $reply_href ?>" class="btn btn-black btn-sm">
<i class="fa fa-comments"></i><span class="hidden-xs"> 답변</span>
</a>
<?php } ?>
<?php if ($write_href) { ?>
<a href="<?php echo $write_href ?>" class="btn btn-color btn-sm">
<i class="fa fa-pencil"></i><span class="hidden-xs"> 글쓰기</span>
</a>
<?php } ?>
</div>
<div class="clearfix"></div>
</div>
</div>
<script>
function board_move(href){
window.open(href, "boardmove", "left=50, top=50, width=500, height=550, scrollbars=1");
}
$(function() {
$("a.view_image").click(function() {
window.open(this.href, "large_image", "location=yes,links=no,toolbar=no,top=10,left=10,width=10,height=10,resizable=yes,scrollbars=no,status=no");
return false;
});
<?php if ($board['bo_download_point'] < 0) { ?>
$("a.view_file_download").click(function() {
if(!g5_is_member) {
alert("다운로드 권한이 없습니다.\n회원이시라면 로그인 후 이용해 보십시오.");
return false;
}
var msg = "파일을 다운로드 하시면 포인트가 차감(<?php echo number_format($board['bo_download_point']) ?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?";
if(confirm(msg)) {
var href = $(this).attr("href")+"&js=on";
$(this).attr("href", href);
return true;
} else {
return false;
}
});
<?php } ?>
});
</script>
<script>
function make_back(in_num) {
var write_table_name = "<?=$write_table?>";
$.ajax({
url: g5_bbs_url+"/make_back.php",
type: "POST",
data: {
insert_num : ""+in_num+"",
write_table : ""+write_table_name+""
},
dataType: "json",
async: false,
cache: false,
success: function(data) {
alert(data.msg); //리턴 결과 메세지
location.reload(); //새로고침
},
error : function(data, status) {
alert("데이타 접근에 실패 하였습니다."); return true;
}
});
}
</script>
make_back.php // bbs 폴더 안에
<?
include_once("./_common.php");
$insert_num = $_POST['insert_num'];
$write_table = $_POST['write_table'];
if($insert_num && $insert_num > 0) {
$insert_num--;
$row2 =sql_fetch(" select wr_num from $write_table where wr_is_comment = 0 order by wr_num DESC limit $insert_num, 1 ");
$move_wr_num= $row2[wr_num];
if($w =='') {
$pre_wr_num = $wr_num;
} else {
$row3 = sql_fetch(" select wr_num from $write_table where wr_id= '$wr_id' ");
$pre_wr_num= $row3[wr_num];
}
// echo "<br>///check/////////////1.m_wr_num= $move_wr_num ///pre_wr_num= $pre_wr_num"; exit;
if( $move_wr_num ) {
sql_query("update $write_table set wr_num = wr_num - 1 where wr_num<= $move_wr_num " );
} else {
$move_wr_num = get_next_num($write_table);
}
if($move_wr_num> $pre_wr_num) $pre_wr_num--;
sql_query("update $write_table set wr_num = $move_wr_num where wr_num= '$pre_wr_num' " );
}
$msg = "등록 되었습니다.";
die("{\"msg\":\"$msg\"}");
?>
게시글 리스트 order by 를 오름차순인지 내일차순인지 해보시면 될 듯 한데요