Files
dnssash/adm/survey_manage/template_form_update.php
2026-06-11 18:47:38 +09:00

110 lines
3.7 KiB
PHP

<?php
$sub_menu = '710300';
include_once('./_common.php');
auth_check_menu($auth, $sub_menu, "w");
$mode = isset($_POST['mode']) ? $_POST['mode'] : '';
$st_id = isset($_POST['st_id']) ? (int)$_POST['st_id'] : 0;
if (!$mode) {
alert('잘못된 접근입니다.');
}
// 기본 정보
$st_name = isset($_POST['st_name']) ? trim($_POST['st_name']) : '';
$st_description = isset($_POST['st_description']) ? trim($_POST['st_description']) : '';
$st_category = isset($_POST['st_category']) ? trim($_POST['st_category']) : '기타';
$st_is_public = isset($_POST['st_is_public']) ? (int)$_POST['st_is_public'] : 1;
if (!$st_name) {
alert('템플릿 이름을 입력해주세요.');
}
// 질문 데이터
$questions = isset($_POST['questions']) ? $_POST['questions'] : array();
if (empty($questions)) {
alert('최소 1개 이상의 질문을 추가해주세요.');
}
if ($mode == 'insert') {
// 새 템플릿 생성
$sql = "INSERT INTO survey_templates
(st_name, st_description, st_category, st_is_public, st_created_by, st_created_at)
VALUES
('".sql_real_escape_string($st_name)."',
'".sql_real_escape_string($st_description)."',
'".sql_real_escape_string($st_category)."',
'$st_is_public',
'{$member['mb_id']}',
NOW())";
sql_query($sql);
$st_id = sql_insert_id();
if (!$st_id) {
alert('템플릿 생성에 실패했습니다.');
}
} else if ($mode == 'update') {
// 기존 템플릿 수정
if (!$st_id) {
alert('템플릿 ID가 없습니다.');
}
$sql = "UPDATE survey_templates SET
st_name = '".sql_real_escape_string($st_name)."',
st_description = '".sql_real_escape_string($st_description)."',
st_category = '".sql_real_escape_string($st_category)."',
st_is_public = '$st_is_public',
st_updated_at = NOW()
WHERE st_id = '$st_id'";
sql_query($sql);
// 기존 질문들 삭제
sql_query("DELETE FROM survey_template_questions WHERE st_id = '$st_id'");
}
// 질문들 저장
foreach ($questions as $order => $question) {
$stq_title = isset($question['stq_title']) ? trim($question['stq_title']) : '';
$stq_description = isset($question['stq_description']) ? trim($question['stq_description']) : '';
$stq_type = isset($question['stq_type']) ? trim($question['stq_type']) : 'text';
$stq_required = isset($question['stq_required']) ? 1 : 0;
$stq_options = '';
if (!$stq_title) {
continue; // 제목이 없는 질문은 건너뛰기
}
// 옵션 처리 (객관식 질문인 경우)
if (in_array($stq_type, ['radio', 'checkbox', 'select']) && isset($question['options'])) {
$options = array_filter($question['options'], function($option) {
return trim($option) !== '';
});
if (!empty($options)) {
$stq_options = json_encode(array_values($options), JSON_UNESCAPED_UNICODE);
}
}
$sql = "INSERT INTO survey_template_questions
(st_id, stq_order, stq_type, stq_title, stq_description, stq_required, stq_options, stq_created_at)
VALUES
('$st_id',
'".($order + 1)."',
'".sql_real_escape_string($stq_type)."',
'".sql_real_escape_string($stq_title)."',
'".sql_real_escape_string($stq_description)."',
'$stq_required',
'".sql_real_escape_string($stq_options)."',
NOW())";
sql_query($sql);
}
$message = $mode == 'insert' ? '템플릿이 생성되었습니다.' : '템플릿이 수정되었습니다.';
alert($message, 'template_list.php');
?>