alert('กรุณาเข้าสู่ระบบ'); window.location='../login.php';"; exit; } // ตรวจสอบ person_id $person_id = isset($_GET['person_id']) ? intval($_GET['person_id']) : 0; if ($person_id <= 0) { echo ""; exit; } // ตรวจสอบว่าเป็นการแก้ไขหรือเพิ่มใหม่ $isEdit = isset($_GET['mode']) && $_GET['mode'] == 'edit' && isset($_GET['service_id']); $isCopy = isset($_GET['mode']) && $_GET['mode'] == 'copy' && isset($_GET['service_id']); $service_id = $isEdit ? intval($_GET['service_id']) : 0; // ดึงข้อมูลบุคคล $personData = array(); try { $stmt = $pdo->prepare("SELECT * FROM `individual_counseling` WHERE id = ? AND username = ? AND schoolID = ?"); $stmt->execute(array($person_id, $username, $schoolID)); $personData = $stmt->fetch(PDO::FETCH_ASSOC); if (!$personData) { echo ""; exit; } } catch (PDOException $e) { echo ""; exit; } // ดึงข้อมูลการให้บริการสำหรับแก้ไข $editData = array(); if ($isEdit) { try { $stmt = $pdo->prepare("SELECT * FROM `individual_counseling_service` WHERE id = ? AND individual_counseling_id = ?"); $stmt->execute(array($service_id, $person_id)); $editData = $stmt->fetch(PDO::FETCH_ASSOC); if (!$editData) { echo ""; exit; } // ดึงวันที่แยกต่างหากเพื่อหลีกเลี่ยง PDOFormatDate (ใช้ / แทน - เพื่อไม่ให้ถูก format) $dateStmt = $pdo->prepare("SELECT DATE_FORMAT(service_request_date, '%Y/%m/%d') AS srd, DATE_FORMAT(follow_up_date, '%Y/%m/%d') AS fud FROM `individual_counseling_service` WHERE id = ?"); $dateStmt->execute(array($service_id)); $dateRow = $dateStmt->fetch(PDO::FETCH_ASSOC); $editData['service_request_date'] = (!empty($dateRow['srd'])) ? str_replace('/', '-', $dateRow['srd']) : ''; $editData['follow_up_date'] = (!empty($dateRow['fud'])) ? str_replace('/', '-', $dateRow['fud']) : ''; } catch (PDOException $e) { echo ""; exit; } } // ดึงข้อมูลสำหรับโหมด copy (ติดตามการนัดหมาย) if ($isCopy) { $copy_service_id = intval($_GET['service_id']); try { $stmt = $pdo->prepare("SELECT * FROM `individual_counseling_service` WHERE id = ? AND individual_counseling_id = ?"); $stmt->execute(array($copy_service_id, $person_id)); $editData = $stmt->fetch(PDO::FETCH_ASSOC); if (!$editData) { $editData = array(); $isCopy = false; } else { // สำหรับ copy: ล้างเฉพาะวันที่บริการ ให้กรอกใหม่ / คง follow_up ไว้ $editData['service_request_date'] = ''; // ดึง follow_up_date แบบ raw เพื่อหลีกเลี่ยง PDOFormatDate แปลงเป็นภาษาไทย $dateStmt = $pdo->prepare("SELECT DATE_FORMAT(follow_up_date, '%Y/%m/%d') AS fud FROM `individual_counseling_service` WHERE id = ?"); $dateStmt->execute(array($copy_service_id)); $dateRow = $dateStmt->fetch(PDO::FETCH_ASSOC); $editData['follow_up_date'] = (!empty($dateRow['fud'])) ? str_replace('/', '-', $dateRow['fud']) : ''; } } catch (PDOException $e) { $editData = array(); $isCopy = false; } } // $useData = true เมื่อมีข้อมูลเดิมให้ pre-fill (ทั้ง edit และ copy) $useData = $isEdit || $isCopy; // คำนวณครั้งที่ขอรับบริการถัดไป (สำหรับกรณีเพิ่มใหม่) $nextServiceNumber = 1; if (!$isEdit) { try { $stmt = $pdo->prepare("SELECT COALESCE(MAX(service_request_number), 0) + 1 AS next_number FROM `individual_counseling_service` WHERE individual_counseling_id = ?"); $stmt->execute(array($person_id)); $result = $stmt->fetch(PDO::FETCH_ASSOC); $nextServiceNumber = isset($result['next_number']) ? $result['next_number'] : 1; } catch (PDOException $e) { $nextServiceNumber = 1; } } // ฟังก์ชันสำหรับดึงข้อมูลจากตารางประเภทต่างๆ function getTypeData($table, $pdo) { try { $sql = "SELECT id, title FROM `{$table}` WHERE status = 1 ORDER BY id"; $stmt = $pdo->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); // ถ้าไม่พบข้อมูลใน status = 1 ให้ลองดูทั้งหมด if (empty($result)) { $sql = "SELECT id, title FROM `{$table}` ORDER BY id"; $stmt = $pdo->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); } return $result; } catch (PDOException $e) { return array(); } } // ดึงข้อมูลประเภทต่างๆ $educationTypes = getTypeData('typeEducational', $pdo); // ดึงข้อมูลประเภทปัญหาด้านอาชีพ จากตาราง typeEduOccupation $careerTypes = getTypeData('typeEduOccupation', $pdo); if (empty($careerTypes)) { // Fallback: ลองชื่อตารางอื่นที่อาจมีในระบบ $careerTypes = getTypeData('typeeduoccupation', $pdo); } if (empty($careerTypes)) { $careerTypes = getTypeData('typeOccupation', $pdo); } // ดึงข้อมูลประเภทปัญหาด้านส่วนตัวและสังคม จากตาราง typesocialSspects $personalTypes = getTypeData('typesocialSspects', $pdo); if (empty($personalTypes)) { // Fallback: ลองชื่อตารางอื่นที่อาจมีในระบบ $personalTypes = getTypeData('typeSocial', $pdo); } if (empty($personalTypes)) { $personalTypes = getTypeData('typePersonal', $pdo); } $successTypes = getTypeData('typeServiceSuccess', $pdo); $appointmentTypes = getTypeData('typeAppointment', $pdo); $helpTypes = getTypeData('typeGiveHelp', $pdo); // Debug: ถ้าไม่มีข้อมูล ให้สร้างข้อมูลตัวอย่าง if (empty($careerTypes)) { $careerTypes = array( array('id' => 1, 'title' => 'การเลือกสาขาวิชา'), array('id' => 2, 'title' => 'การหางาน'), array('id' => 3, 'title' => 'การเปลี่ยนงาน'), array('id' => 4, 'title' => 'การพัฒนาทักษะ'), array('id' => 5, 'title' => 'ปัญหาในที่ทำงาน') ); } if (empty($personalTypes)) { $personalTypes = array( array('id' => 1, 'title' => 'ปัญหาครอบครัว'), array('id' => 2, 'title' => 'ปัญหาการปรับตัว'), array('id' => 3, 'title' => 'ปัญหาความสัมพันธ์'), array('id' => 4, 'title' => 'ปัญหาความเครียด'), array('id' => 5, 'title' => 'ปัญหาสุขภาพจิต') ); } // Debug information (สามารถลบได้เมื่อแก้ไขเสร็จ) if (isset($_GET['debug'])) { echo "
"; echo "
Debug Information:
"; echo "

Education Types: " . count($educationTypes) . " items

"; echo "

Career Types: " . count($careerTypes) . " items

"; echo "

Personal Types: " . count($personalTypes) . " items

"; echo "

Success Types: " . count($successTypes) . " items

"; echo "

Appointment Types: " . count($appointmentTypes) . " items

"; echo "

Help Types: " . count($helpTypes) . " items

"; echo "
Help Types List:
"; foreach ($helpTypes as $helpType) { echo "

ID: {$helpType['id']} - Title: {$helpType['title']}

"; } echo "

Help Sub Types: " . count($helpSubTypes) . " groups

"; foreach ($helpSubTypes as $parentId => $subTypes) { echo "

Parent ID {$parentId}: " . count($subTypes) . " sub-items

"; foreach ($subTypes as $subType) { echo "

Sub ID: {$subType['id']} - Title: {$subType['title']}

"; } } echo "
"; } // ดึงข้อมูล sub-menu สำหรับ typeGiveHelp จากตาราง typegiveHelpSub $helpSubTypes = array(); try { // ลองชื่อตารางที่ถูกต้องก่อน $stmt = $pdo->prepare("SELECT id, title, typeGiveHelpId FROM `typegiveHelpSub` WHERE status = 1 ORDER BY typeGiveHelpId, id"); $stmt->execute(); $helpSubData = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!$helpSubData) { // Fallback: ลองชื่อตารางที่เป็นตัวพิมพ์เล็ก $stmt = $pdo->prepare("SELECT id, title, typeGiveHelpId FROM `typegivehelpsub` WHERE status = 1 ORDER BY typeGiveHelpId, id"); $stmt->execute(); $helpSubData = $stmt->fetchAll(PDO::FETCH_ASSOC); } // จัดกลุ่ม sub-types ตาม parent ID foreach ($helpSubData as $sub) { $helpSubTypes[$sub['typeGiveHelpId']][] = $sub; } } catch (PDOException $e) { $helpSubTypes = array(); } // แปลงข้อมูล JSON สำหรับโหมดแก้ไข $selectedEducation = array(); $selectedCareer = array(); $selectedPersonal = array(); $selectedReferral = array(); if ($useData && !empty($editData)) { // ลองแปลง JSON ก่อน สำหรับข้อมูลเก่า if (!empty($editData['education_issues'])) { $selectedEducation = json_decode($editData['education_issues'], true); if (!is_array($selectedEducation)) { // ถ้าไม่ใช่ JSON ลองแยกด้วย comma $selectedEducation = explode(',', trim($editData['education_issues'])); } } if (!empty($editData['career_issues'])) { $selectedCareer = json_decode($editData['career_issues'], true); if (!is_array($selectedCareer)) { $selectedCareer = explode(',', trim($editData['career_issues'])); } } if (!empty($editData['personal_issues'])) { $selectedPersonal = json_decode($editData['personal_issues'], true); if (!is_array($selectedPersonal)) { $selectedPersonal = explode(',', trim($editData['personal_issues'])); } } if (!empty($editData['referral_services'])) { $selectedReferral = json_decode($editData['referral_services'], true); if (!is_array($selectedReferral)) { $selectedReferral = explode(',', trim($editData['referral_services'])); } } // ถ้าไม่สามารถแปลงได้ ให้เป็น array ว่าง if (!is_array($selectedEducation)) $selectedEducation = array(); if (!is_array($selectedCareer)) $selectedCareer = array(); if (!is_array($selectedPersonal)) $selectedPersonal = array(); if (!is_array($selectedReferral)) $selectedReferral = array(); } ?>
ตอนที่ 2 - ประวัติการขอรับบริการ
ตอนที่ 3 - ข้อมูลการขอรับบริการ

ด้านการศึกษา

>
>
>

ด้านอาชีพ

Career Types Count: {$careerCount}
"; } ?> 0): ?>
>
>
>
ไม่พบข้อมูลประเภทปัญหาด้านอาชีพ กรุณาติดต่อผู้ดูแลระบบ
>

ด้านส่วนตัวและสังคม

Personal Types Count: {$personalCount}
"; echo "
Personal Types Data: " . json_encode($personalTypes) . "
"; } ?> 0): ?>
$personal): ?>
>
>
ไม่พบข้อมูลประเภทปัญหาด้านส่วนตัวและสังคม กรุณาติดต่อผู้ดูแลระบบ
>
ตอนที่ 4 - ผลการให้บริการ
onchange="toggleServiceFailureReason()" >
>
onchange="toggleFollowUpDate()">
>
>
>