폼 관련 질문 드립니다.

폼 관련 질문 드립니다.

QA

폼 관련 질문 드립니다.

본문

안녕하세요 현제 https://sgcil.org/bbs/board.php?bo_table=03_03
여기서 활동지원 신청에 관련된 폼을 만들고 있는데요 

월요일부터 일요일 까지 각각의 시간을 선택을 할 수 있도록 하였는데요 

문제는 이게 작성페이지 뷰페이지 모두다 내가 체크한 부분이 정상적으로 체크되어서 잘 출력이 됩니다.

하지만 수정을 누르면 이상하게 체크된 부분이 나오지 않아서요

혹시 이거 알려 주시면 정말 감사 드리겠습니다. 이것만 하면 사실 끝나는 상태라서요 나머지는 제가 다 하였습니다. 그리고 어떤 분이 만들어 주시기는 했는데 이게 적용을 하니 되지 않아서요 그래서 쳇지피티를 좀 활용을 하기는 했습니다. 수정에 관련 된 것을 물어보니 이상한 소리만 하고 그래서요 ㅠㅠㅠㅠㅠ

아시는분은 알려 주시면 감사 드리겠습니다.

write_update.skin.php


$days = array("월", "화", "수", "목", "금", "토", "일");
$times = array("0-2", "2-4", "4-6", "6-8", "8-10", "10-12", "12-14", "14-16", "16-18", "18-20", "20-22", "22-24");
// wr_17을 문자열로 변환
$wr_17 = '';
$total_hours = 0;
foreach ($days as $day) {
    foreach ($times as $time) {
        $key = "wr_17_{$day}_{$time}";
        if (isset($_POST[$key]) && $_POST[$key] == '1') {
            $wr_17 .= "$day-$time|";
            $total_hours += 2; // 각 시간 블록이 2시간이므로 총합에 2를 더합니다.
        }
    }
}
// 마지막 '|' 제거
$wr_17 = rtrim($wr_17, '|');
// SQL 업데이트
sql_query("UPDATE $write_table SET wr_17 = '$wr_17' WHERE wr_id = '$wr_id'");

 

write.skin.php


<?php
     // 활동 계획 데이터 처리
     $days = array("월", "화", "수", "목", "금", "토", "일");
     $times = array("0-2", "2-4", "4-6", "6-8", "8-10", "10-12", "12-14", "14-16", "16-18", "18-20", "20-22", "22-24");
     foreach ($times as $time) {
          echo "<tr>";
               echo "<td>{$time}</td>";
               foreach ($days as $day) {
                    $key = "wr_16_{$day}_{$time}";
                    $checked = (isset($_POST[$key]) && $_POST[$key] == '1') ? 'checked' : '';
                    echo "<td><input type='checkbox' name='{$key}' value='1' {$checked} id='{$key}'><label for='{$key}'></label></td>";
               }
          echo "</tr>";
     }
?>

 

view.skin.php


<?php
     // DB에서 wr_11 데이터 가져오기
     $wr_16 = isset($write['wr_16']) ? $write['wr_16'] : ''; // 예시 데이터 초기화
     $wr_16_array = explode('|', $wr_16);
     $days = array("월", "화", "수", "목", "금", "토", "일");
     $times = array("0-2", "2-4", "4-6", "6-8", "8-10", "10-12", "12-14", "14-16", "16-18", "18-20", "20-22", "22-24");
?>
<tr>
     <th scope="row" class="subject" rowspan="15"><font color="#0c4ca3">*</font><label for="wr_17">활동계획</label></th>
     <td class="subtext" colspan="8" style="text-align:center;">※ 대략적으로, 활동 가능한 시간대에  채크표시해주시기 바랍니다.</td>
</tr>
<tr>                    
     <td class="subtext" style="text-align:center;">시간</td>
     <td class="subtext" style="text-align:center;">월</td>
     <td class="subtext" style="text-align:center;">화</td>
     <td class="subtext" style="text-align:center;">수</td>
     <td class="subtext" style="text-align:center;">목</td>
     <td class="subtext" style="text-align:center;">금</td>
     <td class="subtext" style="text-align:center;">토</td>
     <td class="subtext" style="text-align:center;">일</td>
</tr>
<?php
     foreach ($times as $time) {
          echo "<tr>";
          echo "<td>{$time}</td>";
          foreach ($days as $day) {
               $key = "$day-$time";
               $checked = in_array($key, $wr_16_array) ? 'checked' : '';
               echo "<td><input type='checkbox' disabled {$checked} id='{$key}'><label for='{$key}'></label></td>";
          }
          echo "</tr>";
     }
?>

이 질문에 댓글 쓰기 :

답변 2

write.skin.php에 $_POST로 넘어오는게 맞으실까요?
write페이지면 $write 배열에서 가져오셔야될것같은데요...



//$checked = (isset($_POST[$key]) && $_POST[$key] == '1') ? 'checked' : '';

$checked = (isset($write[$key]) && $write[$key] == '1') ? 'checked' : '';
view.skin.php랑 동일하게 셋팅하시면될것같네요.

<?php
        //최상단추가

     $wr_16 = isset($write['wr_16']) ? $write['wr_16'] : ''; // 예시 데이터 초기화
     $wr_16_array = explode('|', $wr_16);

...
//foreach부분 수정      
    foreach ($days as $day) {
      $key = "$day-$time";
      $checked = in_array($key, $wr_16_array) ? 'checked' : '';
      echo "<td><input type='checkbox' name='{$key}' value='1' {$checked} id='{$key}'><label for='{$key}'></label></td>"; 
    }

답변을 작성하시기 전에 로그인 해주세요.
전체 953
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT