답글

3일

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