고수님들 sql 질문드립니다 채택완료
질문드립니다!
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개
관리자 페이지에서 상태 변경 버튼을 클릭할 때
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개
댓글을 작성하려면 로그인이 필요합니다.
추가 피해자 방지 https://sir.kr/conflictconsultation/245" rel="nofollow noreferrer noopener" target="_blank">https://sir.kr/conflictconsultation/245
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인