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

고수님들 sql 질문드립니다 채택완료

그누최공 8개월 전 조회 2,649

질문드립니다!

 

index.php 에 문의 접수 폼을만들어서 sql table에 저장시켰는데

대충 구조를 설명드리자면

 

index.php에 form 입력값을 submit 해서 bbs(bbs/user_qna.php)파일에서 데이터 처리후 sql table에 insert까지 완료, 해당 데이터를 관리자(adm/user_qna_list.php)에서까지 출력 완료 했습니다.

 

여기서 문제가

밸류값을 입력받을때

 상태로 넘겨 관리자에서 

</p>

<p>if($row['status'] == '대기') {</p>

<p> <button type="button" name="button">답변완료</button>

 <button type="button" name="button">답변취소</button></p>

<p>} else {</p>

<p> <?php echo $row['status']; ?></p>

<p>}</p>

<p>

버튼을 눌러 처리 하려고하는데 검색해도 어떻게 검색해야할지 모르겠고 방법도 안떠오르고해서 조언좀 구하고자 이렇게 질문 남겨봅니다 감사합니다!

 

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

답변 3개

채택된 답변
+20 포인트
glitter0gim
8개월 전

관리자 페이지에서 상태 변경 버튼을 클릭할 때

JavaScript와 AJAX를 사용하여 상태 변경 요청을 서버로 전송하고,

이를 받은 PHP 처리 페이지에서 SQL의 UPDATE 구문으로 데이터베이스 상태값을 변경한 후

성공 여부를 JSON 형태로 반환하여 즉시 화면에 변경된 상태를 반영하는 것은 어떨까요.

 

*관리자 페이지 (adm/user_qna_list.php)의 버튼 HTML & JavaScript 코드 예시

" target="_blank" rel="noopener noreferrer">https://code.jquery.com/jquery-1.12.4.min.js">

*서버측 PHP 처리파일 (adm/update_qna_status.php)

header('Content-Type: application/json');

// POST 값 확인 및 보안 처리 $id = isset($_POST['id']) ? (int)$_POST['id'] : 0; $status = isset($_POST['status']) ? trim($_POST['status']) : '';

if (!$id || !$status) {     echo json_encode(['result' => 'error', 'message' => '잘못된 요청입니다.']);     exit; }

// SQL Injection 방지 $status = mysqli_real_escape_string($conn, $status);

// 데이터베이스 상태 업데이트 처리 $sql = "UPDATE user_qna_table SET status = '{$status}' WHERE id = {$id}"; if (sql_query($sql)) {     echo json_encode(['result' => 'success']); } else {     echo json_encode(['result' => 'error', 'message' => '데이터베이스 업데이트 중 오류가 발생했습니다.']); } ?>

- AJAX를 통해 서버와 비동기적으로 통신하므로 페이지 새로고침 없이 즉시 반영.

- 관리자 입장에서 직관적 버튼 클릭만으로 상태를 바꿀 수 있어 편의성이 좋음.

- 서버에서 직접 데이터 처리 로직을 구현하므로 클라이언트 측 변조에 대한 보안이 확보 됨.

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

답변에 대한 댓글 2개

그누최공
8개월 전
감사합니다!
g
glitter0gim
8개월 전
(●'◡'●)

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

n
8개월 전

추가 피해자 방지 https://sir.kr/conflictconsultation/245" rel="nofollow noreferrer noopener" target="_blank">https://sir.kr/conflictconsultation/245

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

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

유찬아빠
8개월 전

방법은 여러가지가 있겠네요... ajax 를 이용하는 방법도 있을테고 해당게시글의 고유번호를 버튼 값과 같이 넘겨 업데이트 해주는 방법이 있겠네요  

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

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

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

로그인