list.skin.php 내용보기 페이지 체크박스 클릭시 DB업데이트 방법?
기존에 있던 내용 참고해서 만들려고 하는데.. 잘 안되네요. 혹시 어떻게 해야 될까요?
작성
<?php if($wr_1) ?>
<span class="sp"></span>
<lable>구분 : </lable>
<?php echo $view['wr_1']; //구분 ?>
<!-- 라디오버튼 -->
<style>
.wr-radio { margin-left:3px; margin-right:7px; }
</style><?php
function wr_radio($radio_wr, $radio_str, $radio_req) {
global $write;
return "
<script>
n = " . explode('_', $radio_wr)[1] . ";
document.write('<span id=wrRadio_' + n + ' onmouseover=n=' + n + '>');
this['radio_' + n] = ('" . $radio_str . "').split(',');
this['radioValue' + n] = '" . $write[$radio_wr] . "';
document.write('<input type=hidden id=wr_' + n + ' name=wr_' + n + ' value=\'' + this['radioValue' + n] + '\'>');
for (this['name_' + n] of this['radio_' + n]) document.write('<input type=radio name=_' + n + ' value=\'' + this['name_' + n] + '\'><span class=wr-radio>' + this['name_' + n] + '</span>');
document.getElementsByName('_' + n)[document.getElementsByName('_' + n).length - 1].style.marginRight = '0px';
this['radioReq_' + n] = " . $radio_req . ";
for (this['_' + n] of document.getElementsByName('_' + n)) {
this['_' + n].checked = this['wr_' + n].value == this['_' + n].value;
this['_' + n].onclick = function() {
window['wr_' + n].value = this.value;
}
}
if (this['radioReq_' + n] && this['wr_' + n].value == '') {
document.getElementsByName('_' + n)[0].checked = 1;
document.getElementsByName('_' + n)[0].onclick();
}
document.write('</span>');
</script>
";
}
?>
<!-- 라디오버튼 -->

뷰
<?php if($wr_1) ?>
<span class="sp"></span>
<lable>구분 : </lable>
<?php echo $view['wr_1']; //구분 ?>

리스트
<?php if($wr_1){
sql_query("update $write_table set wr_1='$wr_1' where wr_id='$wr_1'");
$list['wr_1'] = $wr_1;
}
?>
<input type='radio' name='wr_1' value='검토'>검토
<input type='radio' name='wr_1' value='진행'>진행
<input type='radio' name='wr_1' value='완료'>완료
<input type='radio' name='wr_1' value='보류'>보류

화면에 표시는 되는데 리스트에서 게시글 선택하고 상단에 라디오박스를 클릭하면 해당 내용으로 변경이 되도록 하고 싶은데... 개발은 아예 몰라서 여기저기 찾아보고 하는 왕초보라.. 해결방법 부탁드립니다.
답변 2개 / 댓글 2개
해결방법은 이미 찾으신듯 한데요.. 올려주신 링크에 바로 답이 있습니다.
답변에 대한 댓글 2개
1. list.skin.php 파일에 추가
[code]
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- jQuery를 불러옵니다. 버전은 필요에 따라 조정할 수 있습니다. -->
<script>
function updateWr1(wrId, value) {
$.ajax({
type: "POST",
url: "ajax_update_wr1.php", // 업데이트를 처리할 PHP 파일 경로를 설정합니다.
data: {
wr_id: wrId,
wr_1: value
},
success: function(response) {
// 성공적으로 업데이트가 완료된 후 수행할 작업을 정의할 수 있습니다.
// 예를 들어, 메시지를 표시하거나 화면을 갱신합니다.
}
});
}
</script>
[/code]
2. AJAX 요청을 처리할 PHP 파일인 "ajax_update_wr1.php"를 생성
[code]
<?php
include_once('./_common.php'); // 그누보드 설정 파일을 불러옵니다.
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$wr_id = $_POST['wr_id'];
$wr_1 = $_POST['wr_1'];
// 데이터베이스 업데이트 쿼리를 실행합니다. 적절한 테이블 이름과 필드 이름을 사용해야 합니다.
sql_query("update 테이블이름 set wr_1='$wr_1' where wr_id='$wr_id'");
echo '업데이트가 완료되었습니다.'; // 클라이언트에 응답을 보냅니다.
} else {
echo '잘못된 요청입니다.';
}
?>
[/code]
3. 게시판 리스트의 라디오 버튼을 다음과 같이 수정하여 JavaScript 함수를 호출
[code]
<input type='radio' name='wr_1' value='검토' onclick="updateWr1(<?php echo $list['wr_id']; ?>, '검토')">검토
<input type='radio' name='wr_1' value='진행' onclick="updateWr1(<?php echo $list['wr_id']; ?>, '진행')">진행
<input type='radio' name='wr_1' value='완료' onclick="updateWr1(<?php echo $list['wr_id']; ?>, '완료')">완료
<input type='radio' name='wr_1' value='보류' onclick="updateWr1(<?php echo $list['wr_id']; ?>, '보류')">보류
[/code]
답변을 작성하려면 로그인이 필요합니다.