view.blade.php
@if($oDocument->isEditable()) <form action="./" method="post" onsubmit="return procFilter(this, window.update)" id="status"> <input type="hidden" name="document_srl" value="{$document_srl}" /> @if(!$oDocument->isSecret()) <input type="hidden" name="status" value="SECRET"> <button type="submit">스레드 잠금 <i class="lock"></i></button> @else <input type="hidden" name="status" value="PUBLIC"> <button type="submit">잠금 해제하기 <i class="unlock"></i></button> @endif </form> @php // 비밀글 전환 처리 if ($_POST['status'] == 'SECRET' && isset($_POST['document_srl'])) { $obj = new stdClass(); $obj->document_srl = $_POST['document_srl']; $obj->secret = 'SECRET'; // status를 'SECRET'으로 설정 $query_path = $module_info->module."/skins/".$module_info->skin; // 쿼리 경로 $output = executeQuery($query_path.'.updateDocumentsSecret', $obj); // 쿼리 실행 } // 공개글 전환 처리 if ($_POST['status'] == 'PUBLIC' && isset($_POST['document_srl'])) { $obj = new stdClass(); $obj->document_srl = $_POST['document_srl']; $obj->secret = 'PUBLIC'; // status를 'PUBLIC'으로 설정 $query_path = $module_info->module."/skins/".$module_info->skin; // 쿼리 경로 $output = executeQuery($query_path.'.updateDocumentsSecret', $obj); // 쿼리 실행 // 페이지 리다이렉트 (새로고침 효과) } @endphp <script> // 폼 제출 후 페이지 새로 고침 document.querySelector('form#status').addEventListener('submit', function(e) { e.preventDefault(); // 기본 폼 제출 방지 var form = this; // 폼을 AJAX로 제출 (또는 정상 제출 후 페이지 새로 고침) fetch(form.action, { method: 'POST', body: new FormData(form) }).then(function(response) { // 성공적으로 제출되면 페이지 새로 고침 window.location.reload(); }).catch(function(error) { console.error('Error:', error); }); }); </script> @endif