請假特殊專案申請
對應程式: enter_logs/holiday/student_holiday.php

業務功能
提供學生填寫請假申請表單,支援一次輸入最多 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 並顯示錯誤及返回按鈕):
- Email 格式:
filter_var(FILTER_VALIDATE_EMAIL) doc_url(有值時):filter_var(FILTER_VALIDATE_URL)- 學號末 6 碼:
preg_match('/^[0-9]{6}$/') school_area:必須在['al','hi','hc','tc','st','co']之內school_class:必須在[M,T,H,I,E,G]之內
資料庫寫入(每個請假時段一筆):
- 組合學號:
school_no = 地區碼 + class + 末6碼(地區碼對照 hi→A、tc→B、hc→J、st→E、al→X、co→C) username、reason、missing_course以safe_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.php(
admin/子目錄)
使用的 Functions
| Function | 定義於 |
|---|---|
now($format) | wp-config.php |
safe_db_value($s) | wp-config.php |
wp_head() | WordPress core |
$wpdb->insert/get_results | WordPress core |
使用的常數
| Constant | 值 | 定義於 |
|---|---|---|
TBL_HOLIDAY_LOGS | "holiday_logs" | enter_logs/inc.php |