수정 삭제 버튼 작동 질문 채택완료
안녕하세요...! 글을 올렸었는데, 수정을 한다는 게 삭제를 했나봅니다;;; 지금 발견해서 다시 올려요..
목록에서 바로 게시글 수정 및 삭제를 할 수 있는 버튼을 만들었습니다.
<div class="post-actions">
<a href="<?php echo $row['edit_href']; ?>" class="btn-edit">수정</a>
<a href="<?php echo $row['del_href']; ?>" class="btn-delete" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</a>
</div>
아마 고수님들은 여기서부터 문제를 아실텐데, 모르는 저는 당황... 비회원은 수정, 삭제 버튼이 안 보이더라고요... post 컨테이너 칸밖으로 빼니까 잘 보이는데... 그 칸이나 안의 다른 건 다 정상적으로 표시되는데, 왜 저 버튼만 안되는지 알 수가 없어요...ㅠㅠ 뚝딱뚝딱 뭔가 바꿔봤는데요..
1차 수리 시도
<div class="post-actions">
<a href="<?php echo $row['edit_href'] ?? G5_BBS_URL . '/password.php?w=u&bo_table=' . $bo_table . '&wr_id=' . $row['wr_id']; ?>" class="btn-edit">수정</a>
<a href="<?php echo $row['del_href'] ?? G5_BBS_URL . '/password.php?w=d&bo_table=' . $bo_table . '&wr_id=' . $row['wr_id']; ?>" class="btn-delete" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</a>
</div>
2차 수리 시도
<div class="post-actions">
<a href="<?php echo $row['update_href']; ?>" class="btn-edit">수정</a>
<a href="<?php echo $row['delete_href']; ?>" class="btn-delete" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</a>
</div>
다 안되네요... 뭐가 문제일까요..? 저는 잘 모르겠습니다... ㅠㅠ
아래는 혹시 몰라서 같이 올리는 list.skin.php 전체 코드입니다
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>
<p>// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;</p>
<p>if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;</p>
<p>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?></p>
<p><!-- 게시판 목록 시작 { -->
<div id="bo_list" style="width:<?php echo $width; ?>"></p>
<p> <!-- 게시판 카테고리 시작 { -->
<?php if ($is_category) { ?>
<nav id="bo_cate">
<h2><?php echo $board['bo_subject'] ?> 카테고리</h2>
<ul id="bo_cate_ul">
<?php echo $category_option ?>
</ul>
</nav>
<?php } ?>
<!-- } 게시판 카테고리 끝 -->
<form name="fboardlist" id="fboardlist" action="<?php echo G5_BBS_URL; ?>/board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="spt" value="<?php echo $spt ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="sw" value=""></p>
<p> <!-- 게시판 페이지 정보 및 버튼 시작 { -->
<div id="bo_btn_top">
<!-- 전체 선택 -->
<?php if ($is_checkbox) { ?>
<div class="chk-box all-select">
<input type="checkbox" id="chk_all" onclick="all_checked(this.checked)">
전체 선택
</div>
<?php } ?></p>
<p> <ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<li>
<button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button>
</li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
<?php if ($is_admin == 'super' || $is_auth) { ?>
<li>
<button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button>
<?php if ($is_checkbox) { ?>
<ul class="more_opt is_list_btn">
<li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li>
<li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li>
<li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
</div>
<!-- } 게시판 페이지 정보 및 버튼 끝 --></p>
<p><div class="post-list">
<form name="fboardlist" id="fboardlist" method="post">
<?php
foreach ($list as $i => $row) {
// 게시글 제목 및 내용 처리
$title = $row['subject'];
$content = '';
if (!empty($row['wr_id'])) {
// 비밀글 여부 확인
if (!empty($row['icon_secret']) || (isset($row['is_secret']) && $row['is_secret'])) {
$title = "비밀글입니다."; // 제목 대체
$content = ""; // 내용 숨김
} else {
// 비밀글이 아닐 경우 제목과 내용 가져오기
$sql = "SELECT wr_content FROM {$write_table} WHERE wr_id = '{$row['wr_id']}'";
$result = sql_fetch($sql);
$content = nl2br(cut_str(strip_tags($result['wr_content'], '
'), 1000)); // 줄바꿈 보존
}
}
?>
<div class="post-item">
<?php if ($is_checkbox) { ?>
<div class="chk-box">
<input type="checkbox" name="chk_wr_id[]" value="<?php echo $row['wr_id']; ?>" id="chk_wr_id_<?php echo $row['wr_id']; ?>" class="selec_chk">
<label for="chk_wr_id_<?php echo $row['wr_id']; ?>">
<span></span>
<b class="sound_only"><?php echo $row['subject']; ?></b>
</label>
</div>
<!-- 수정/삭제 버튼 -->
<div class="post-actions">
<a href="<?php echo $row['update_href']; ?>" class="btn-edit">수정</a>
<a href="<?php echo $row['delete_href']; ?>" class="btn-delete" onclick="return confirm('정말 삭제하시겠습니까?');">삭제</a>
</div>
<?php } ?>
<h3 class="post-title"><?php echo $title; ?></h3>
<p class="post-content"><?php echo $content; ?></p>
</div>
<?php } ?>
</form>
</div></p>
<p>
<!-- 페이지 -->
<?php echo $write_pages; ?>
<!-- 페이지 -->
<?php if ($list_href || $is_checkbox || $write_href) { ?>
<div class="bo_fx">
<?php if ($list_href || $write_href) { ?>
<ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
</ul>
<?php } ?>
</div>
<?php } ?>
</form></p>
<p> <!-- 게시판 검색 시작 { -->
<div class="bo_sch_wrap">
<fieldset class="bo_sch">
<h3>검색</h3>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<?php echo get_board_sfl_select_options($sfl); ?>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<div class="sch_bar">
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder=" 검색어를 입력해주세요">
<button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
</div>
<button type="button" class="bo_sch_cls" title="닫기"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button>
</form>
</fieldset>
<div class="bo_sch_bg"></div>
</div>
<script>
jQuery(function($){
// 게시판 검색
$(".btn_bo_sch").on("click", function() {
$(".bo_sch_wrap").toggle();
})
$('.bo_sch_bg, .bo_sch_cls').click(function(){
$('.bo_sch_wrap').hide();
});
});
</script>
<!-- } 게시판 검색 끝 -->
</div></p>
<p><?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우
별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?></p>
<p><?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
document.querySelectorAll('.post-item .selec_chk').forEach(function (checkbox) {
checkbox.checked = sw; // 체크 상태 적용
});
}</p>
<p>function fboardlist_submit(f) {
var chk_count = 0;</p>
<p> for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}</p>
<p> if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}</p>
<p> if(document.pressed == "선택복사") {
select_copy("copy");
return;
}</p>
<p> if(document.pressed == "선택이동") {
select_copy("move");
return;
}</p>
<p> if(document.pressed == "선택삭제") {
if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
return false;</p>
<p> f.removeAttribute("target");
f.action = g5_bbs_url+"/board_list_update.php";
}</p>
<p> return true;
}</p>
<p>// 선택한 게시물 복사 및 이동
function select_copy(sw) {
var f = document.fboardlist;</p>
<p> if (sw == "copy")
str = "복사";
else
str = "이동";</p>
<p> var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");</p>
<p> f.sw.value = sw;
f.target = "move";
f.action = g5_bbs_url+"/move.php";
f.submit();
}</p>
<p>// 게시판 리스트 관리자 옵션
jQuery(function($){
$(".btn_more_opt.is_list_btn").on("click", function(e) {
e.stopPropagation();
$(".more_opt.is_list_btn").toggle();
});
$(document).on("click", function (e) {
if(!$(e.target).closest('.is_list_btn').length) {
$(".more_opt.is_list_btn").hide();
}
});
});
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->
살려주세요..
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
1년 전
$is_checkbox의 권한이 없으니 비회원은 나오지 않아요. 지금은 체크 박스 자체도 안보이시지 않으신가요? 비회원에게도 이 부분을 해지하면 타 유저의 글도 삭제가 될 위험이 있는데요. 그게 상관없으시다면 아래를 복사하여 교체하세요. 아마 수정/삭제 권한이 없어서 버튼만 보이고 또 클릭하면 권한 요청은 나오겠지만요
로그인 후 평가할 수 있습니다
답변에 대한 댓글 4개
W
1년 전
c
1년 전
일단은 기본적으로는 체크박스가 없으면 수정 삭제를 못해요. 어떤 게시글의 선택인지 모르기 때문에
비회원 수정 삭제를 만드실려면 게시글마다 $row['update_href'] 와 $row['delete_href'] 를 주고 wr_id 값을 가져오도록 만들면 될것 같습니다.
비회원 수정 삭제를 만드실려면 게시글마다 $row['update_href'] 와 $row['delete_href'] 를 주고 wr_id 값을 가져오도록 만들면 될것 같습니다.
W
1년 전
아 그 방법밖엔 없나요.... ㅠ 뭔가 의도한 거랑 다르네요 아 이런 흑흑
일단 코드 조금 수정해서 비회원일 경우, 비회원도 수정 삭제가 보이게 하는 건 성공했습니다..
일단 코드 조금 수정해서 비회원일 경우, 비회원도 수정 삭제가 보이게 하는 건 성공했습니다..
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택
체크박스는 기존의 그누보드 게시글 관리 용도로, 관리자 모드에서만 보이게 하려고 했습니다.. 체크박스는 안 보이는 게 맞아요
수정 삭제만 보이게하고 싶습니다 .. 비회원도 글 작성과 수정, 삭제가 가능하게 하고 싶어요. 그리고 게시글 작성자를 인식해서 비밀번호 안 맞거나 계정이 아니면 못하는 걸 의도했는데.... 어렵네요 ㅋㅋㅋㅠㅠ