2026, 새로운 도약을 시작합니다.

mb_1 에 배열로 값을 넣어는데 제거하는 버튼으로 값을 제거하려고 하는데 안되네요 채택완료

(1) mb_1 에 배열로 값을 넣었습니다 

(2) 버튼을 <button id="removeButton" data-board-id="1">게시판 ID 제거</button> 만들고

(3) 아래처럼 스크립트를 짲어요

Copy




$(document).ready(function() {

$('#removeButton').on('click', function() {

var boardId = $(this).data('board_id'); // 클릭한 버튼의 data 속성에서 게시판 ID 가져오기

var mbId = ''; // PHP에서 mb_id 가져오기

 

removeBoard(boardId, mbId); // 게시판 ID와 mbId를 함수에 전달

});

 

function removeBoard(boardId, mbId) {

$.ajax({

url: '../theme/dw_bootstrap/include/remove_board.php', // 제거를 처리할 PHP 파일

type: 'POST',

data: {

board_id: boardId, // 제거할 게시판 ID

mb_id: mbId // mbId도 함께 전달

},

success: function(response) {

try {

const result = JSON.parse(response); // JSON 응답을 파싱

if (result.success) {

alert(result.message); // 성공 메시지 표시

} else {

alert('오류: ' + result.message); // 실패 메시지 표시

}

} catch (e) {

console.error("응답 파싱 오류: ", e);

alert('서버 응답을 처리하는 데 오류가 발생했습니다.');

}

},

error: function(xhr, status, error) {

console.error("AJAX Error: ", status, error);

alert('AJAX 요청 중 오류가 발생했습니다.');

}

});

}

});



 

 

그리고 다음과 같이 remove_board.php 를 만들었습니다

Copy

위처럼 했는데 제거 버튼을 클릭하면 팝업 오류가 뜨면서 게시판 정보를 제거하지 못하였습니다

이렇게 뜹니다

답변 3개

채택된 답변
+20 포인트

간단한 코드인데 너무 복잡합니다

다음처럼 해보세요

<script>
$(document).ready(function() {
$('#removeButton').on('click', function() {
var boardId = $(this).data('board_id'); // 클릭한 버튼의 data 속성에서 게시판 ID 가져오기
//var mbId = '<?php echo isset($mb_id) ? $mb_id : ''; ?>'; <==불필요함

    $.post('../theme/dw_bootstrap/include/remove_board.php', "board_id="+boardId, function(data){

     if(data=='OK') alert('삭제 완료'); else alert('삭제 실패 : '+data);

   });

  });

});

</script>

================ 그누보드 소스 코드들을 잘 모르니 불필요한 코드들이 가득 들어있네요

 remove_board.php 

<?php

include "../../../common.php"; //<== or include G5_PATH.'/common.php';

if(!$is_member) die("로그인 후 이용하세요");

$user_id =$member['mb_id'];

$row = sql_fetch("select mb_1 from {$g5['member_table']} where mb_id='$user_id' ");

if(!$row['mb_1']) die("삭제할 자료가 없음");

$saved_boards =explode(',', $row['mb_1']);

if (($key = array_search($board_id, $saved_boards)) !== false) {
        unset($saved_boards[$key]); // 배열에서 삭제
    }
    $new_saved_boards = implode(',', $saved_boards);
    $update_result = sql_query("UPDATE {$g5['member_table']} SET mb_1 = '{$new_saved_boards}' WHERE mb_id = '{$user_id}'");


 if ($update_result) die("OK'); else die("Error');

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

답변에 대한 댓글 1개

균이님 감사합니다~
코드가 20%로 줄어든것 같습니다~~

그런데 하나 의문인 것은 경로가 /var/www/html/theme/dw_bootstrap/include 이렇게 되구 html 디렉토리로서 html 디렉토리에 그누보드 common.php 있을 때 include 디렉토리에 있는 파일에서 common.php 에 연결하는 경로는 어떤 파일이든지 ../../../common.php 하면 되는 건가요~~아니면 같은 파일 이라도 어디에 인클루드하느냐에 따라 달라지나요?

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

https://sir.kr/g5_tip/19475

상단에 common.php 가 인클루드 되어 있으면 회원 여분필드(mb_1) 코드로 충분할 것 같습니다.

common.php 쉽게 인클루드 하기 - https://sir.kr/g5_tip/20935

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

답변에 대한 댓글 1개

감사합니다~
common.php 쉽게 인클루드 하기 - https://sir.kr/g5_tip/20935 로 잘 해결하였습니다

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

챗GPT 가 그누보드의 이해도가 낮아서 백날 물어봐야 소용없습니다.

ajax 로 하시든 form 으로 하던 상관없는데

sql_query("update `$g5[member_table]` set mb_1 = '' where mb_id = '{$member['mb_id']}'");

위 쿼리로 업데이트 하시면 현재 로그인한 회원의 mb_1 이 초기화 됩니다.

조건문은 원하시는 형태로 가공하세요.

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

답변에 대한 댓글 3개

답변감사합니다~~

한참 하다보면 엉뚱한 답변해서 산으로 가고 그럽니다~
그렇지만 누군가와 이야기하는 것 같아 재밌네요~~
나도 초보인데 AI를 가르치며 하고 있습니다~`
그냥 친구와 대화하는 기분입니다~
어짜피 이용하지도 않고 홈페이지 운영하지도 않고 재미삼아 만들었다 지웠다 합니다

그나저나 하루종일 씨름해서 어떻게 구현은 했습니다~
현재까지 잘 작동하는데 초기화 된다는 것은 무슨 뜻인지요~`

서버가 꺼지면 초기화 되나요~~
아 초기화란건
sql_query("update `$g5[member_table]` set mb_1 = '' where mb_id = '{$member['mb_id']}'");
이 구문 실행시 mb_1 컬럼을 비우게 된다는거에요 ㅎ
누군가가 sql_query("update `$g5[member_table]` set mb_1 = '' where mb_id = '{$member['mb_id']}'"); 실행한다는 이야기 인가여? 위와 같은 것이 없어서~~ 그래서 제가 초보입니다ㅋㅋ

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

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

로그인
🐛 버그신고