請假特殊專案申請

對應程式: enter_logs/holiday/student_holiday.php

01-請假特殊專案申請

業務功能

提供學生填寫請假申請表單,支援一次輸入最多 10 個請假時段,提交後將資料寫入 holiday_logs 資料表,供行政人員後台審核。

頁面操作

  • GET 參數 cur_student_no:帶入學號可自動預填上課地區、班別、學號末 6 碼
  • 填寫表單欄位
    • 姓名(必填)
    • Email(必填,用於通知審核結果)
    • 證明文件連結(選填,需為合法 URL)
    • 上課班別(必填,radio:產業智慧班/經理人班/專題實作班/智慧醫療班/Edge AI 班/GenAI 班)
    • 上課地區(必填,radio:全台全域/台北總校/台中分校/南部分校/企業專班)
    • 學號末 6 碼(必填,6 位數字;輸入後 AJAX 呼叫 class_date.php 查詢班別課堂日期,並在頁面顯示快速輸入日期按鈕)
    • 請假日期 & 時間(最多 10 筆,每筆選開始日期/時/分 ~ 結束時/分;有「❌clear」按鈕清除單列)
    • 請假原因(必填,textarea)
    • 缺席課程名稱(必填,textarea)
  • 送出 POST 表單

處理邏輯

POST 驗證(失敗則 die 並顯示錯誤及返回按鈕)

  1. Email 格式:filter_var(FILTER_VALIDATE_EMAIL)
  2. doc_url(有值時):filter_var(FILTER_VALIDATE_URL)
  3. 學號末 6 碼:preg_match('/^[0-9]{6}$/')
  4. school_area:必須在 ['al','hi','hc','tc','st','co'] 之內
  5. school_class:必須在 [M,T,H,I,E,G] 之內

資料庫寫入(每個請假時段一筆)

  • 組合學號:school_no = 地區碼 + class + 末6碼(地區碼對照 hi→A、tc→B、hc→J、st→E、al→X、co→C)
  • usernamereasonmissing_coursesafe_db_value() 過濾,並移除 <>
  • $wpdb->insert(TBL_HOLIDAY_LOGS, $ary_insert) 寫入 holiday_logs
  • 成功後顯示綠色確認訊息,並提示可至 my_logs.php 查看狀態

AJAX(前端,changeEvent on <form>

  • 當學號末 6 碼為 6 位時,發送 jQuery AJAX GET 至 class_date.php?prefix=學號前5碼,取得課堂日期列表並渲染快速輸入按鈕

備註

  • IP 限制邏輯已由 Kate 確認取消(程式碼以 comment 保留),現在全台任何 IP 皆可請假
  • $IS_VERSION201912 = true 控制注意事項顯示舊版/新版文字
  • 請假完成後,學生可至 /enter_logs/my_logs.php 即時查看申請狀態
  • 管理員審核後台在 review_holiday.phpadmin/ 子目錄)

使用的 Functions

Function定義於
now($format)wp-config.php
safe_db_value($s)wp-config.php
wp_head()WordPress core
$wpdb->insert/get_resultsWordPress core

使用的常數

Constant定義於
TBL_HOLIDAY_LOGS"holiday_logs"enter_logs/inc.php