채택완료

리스트에서 체크박스 수정방법

list.skin.php 내용보기 페이지 체크박스 클릭시 DB업데이트 방법?

https://sir.kr/qa/276149 

기존에 있던 내용 참고해서 만들려고 하는데.. 잘 안되네요. 혹시 어떻게 해야 될까요?

작성

<?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>

    ";

}

?>

<!-- 라디오버튼 -->

3414315131_1697030232.0293.png

뷰

<?php if($wr_1)  ?>

                        <span class="sp"></span>

                        <lable>구분 : </lable>

                    <?php echo $view['wr_1']; //구분 ?>

3414315131_1697030254.1755.png

리스트

<?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='보류'>보류

3414315131_1697030286.234.png

화면에 표시는 되는데 리스트에서 게시글 선택하고 상단에 라디오박스를 클릭하면 해당 내용으로 변경이 되도록 하고 싶은데... 개발은 아예 몰라서 여기저기 찾아보고 하는 왕초보라.. 해결방법 부탁드립니다.

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
2023-10-11 (수) 23:47:53

해결방법은 이미 찾으신듯 한데요.. 올려주신 링크에 바로 답이 있습니다.

답변에 대한 댓글 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]

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