폼 관련 질문 드립니다.

폼 관련 질문 드립니다.

QA

폼 관련 질문 드립니다.

본문

안녕하세요 제가 폼을 하나 만들어 보려고 하는데 이건 어떻게 만들어야 할지 막막해서요

다른 건 뭐 다 할 수 있을 것 같은데요 활동계획이라는 부분은 언떻게 처리를 해야 할지 막막 하네요

언떤식으로 하면 될런지 혹시 전문가분의 조언 부탁 드립니다. 필드는 현제 wr_11 ~ wr_30까지는 DB에도 만들어 놓기는 했습니다.

월화수목금토일 중에 월요일 선택을 하면 0시 ~ 2시 뭐 이런식으로 해서 쭈욱 나오게 하고 거기서 시간 선택을 하게 하면 될런지 모르겠네요 

편안한 방법이 있으면 말씀 해주시면 정말 감사 드리겠습니다.

제가 아직 PHP를 잘 못하다 보니 어려움이 좀 있기는 하네요

2049131254_1722936959.1992.png

이 질문에 댓글 쓰기 :

답변 2

아래의 코드를 참고해 보시겠어요..

 

1. HTML

 

<?php
include_once('./_common.php');
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>활동지원인력 신청서</title>
</head>
<body>
    <h1>활동지원인력 신청서</h1>
    <form action="form_submit.php" method="post">
        <div>
            <label for="wr_1">성명</label>
            <input type="text" id="wr_1" name="wr_1" required>
        </div>
        <div>
            <label for="wr_2">성별</label>
            <input type="radio" id="wr_2_male" name="wr_2" value="남" required> 남
            <input type="radio" id="wr_2_female" name="wr_2" value="여"> 여
        </div>
        <div>
            <label for="wr_3">생년월일</label>
            <input type="date" id="wr_3" name="wr_3" required>
        </div>
        <div>
            <label for="wr_4">휴대 전화</label>
            <input type="text" id="wr_4" name="wr_4" required>
        </div>
        <div>
            <label for="wr_5">집 전화</label>
            <input type="text" id="wr_5" name="wr_5">
        </div>
        <div>
            <label for="wr_6">주소</label>
            <input type="text" id="wr_6" name="wr_6" required>
        </div>
        <div>
            <label for="wr_7">결혼여부</label>
            <input type="radio" id="wr_7_single" name="wr_7" value="미혼" required> 미혼
            <input type="radio" id="wr_7_married" name="wr_7" value="기혼"> 기혼
            <input type="radio" id="wr_7_other" name="wr_7" value="기타"> 기타
        </div>
        <div>
            <label for="wr_8">차량운전</label>
            <input type="radio" id="wr_8_possible" name="wr_8" value="가능" required> 가능
            <input type="radio" id="wr_8_impossible" name="wr_8" value="불가능"> 불가능
        </div>
        <div>
            <label for="wr_9">차량보유</label>
            <input type="radio" id="wr_9_yes" name="wr_9" value="유" required> 유
            <input type="radio" id="wr_9_no" name="wr_9" value="무"> 무
        </div>
        <div>
            <label for="wr_10">장애유형</label>
            <input type="text" id="wr_10" name="wr_10">
        </div>
        <div>
            <label for="wr_11">장애정도</label>
            <input type="radio" id="wr_11_yes" name="wr_11" value="유" required> 유
            <input type="radio" id="wr_11_no" name="wr_11" value="무"> 무
        </div>
        <div>
            <label for="wr_12">주된 진료 과목</label>
            <input type="text" id="wr_12" name="wr_12">
        </div>
        <div>
            <label for="wr_13">필요자격증</label>
            <input type="text" id="wr_13" name="wr_13">
        </div>
        <div>
            <label for="wr_14">제공 가능한 서비스</label>
            <input type="checkbox" id="wr_14" name="wr_14[]" value="신체보조-세면, 목욕 등"> 신체보조-세면, 목욕 등
            <input type="checkbox" id="wr_14" name="wr_14[]" value="마사지를 포함한 청소, 세탁 등"> 마사지를 포함한 청소, 세탁 등
            <input type="checkbox" id="wr_14" name="wr_14[]" value="산책 및 외출 동행"> 산책 및 외출 동행
        </div>
        <div>
            <label for="wr_15">활동 계획</label>
            <table border="1">
                <thead>
                    <tr>
                        <th>시간</th>
                        <th>월</th>
                        <th>화</th>
                        <th>수</th>
                        <th>목</th>
                        <th>금</th>
                        <th>토</th>
                        <th>일</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                    $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 (array("월", "화", "수", "목", "금", "토", "일") as $day) {
                            echo "<td><input type='checkbox' name='wr_activity[{$day}][]' value='{$time}'></td>";
                        }
                        echo "</tr>";
                    }
                    ?>
                </tbody>
            </table>
        </div>
        <div>
            <label for="wr_16">신청일</label>
            <input type="date" id="wr_16" name="wr_16" required>
        </div>
        <div>
            <label for="wr_17">서명</label>
            <input type="text" id="wr_17" name="wr_17" required>
        </div>
        <input type="submit" value="제출">
    </form>
</body>
</html>

 

 

2. PHP

 

<?php
include_once('./_common.php');

// CSRF 방지 토큰 확인 (그누보드의 기본 기능 사용)
if (!check_write_token()) {
    alert('유효하지 않은 요청입니다.');
    exit;
}

// 데이터베이스에 입력할 준비
$wr_1 = trim($_POST['wr_1']); // 성명
$wr_2 = trim($_POST['wr_2']); // 성별
$wr_3 = trim($_POST['wr_3']); // 생년월일
$wr_4 = trim($_POST['wr_4']); // 휴대전화
$wr_5 = trim($_POST['wr_5']); // 집전화
$wr_6 = trim($_POST['wr_6']); // 주소
$wr_7 = trim($_POST['wr_7']); // 결혼여부
$wr_8 = trim($_POST['wr_8']); // 차량운전
$wr_9 = trim($_POST['wr_9']); // 차량보유
$wr_10 = trim($_POST['wr_10']); // 장애유형
$wr_11 = trim($_POST['wr_11']); // 장애정도
$wr_12 = trim($_POST['wr_12']); // 주된 진료 과목
$wr_13 = trim($_POST['wr_13']); // 필요자격증
$wr_14 = isset($_POST['wr_14']) ? implode(',', $_POST['wr_14']) : ''; // 제공 가능한 서비스
$wr_16 = trim($_POST['wr_16']); // 신청일
$wr_17 = trim($_POST['wr_17']); // 서명

// 활동 계획 데이터 처리
$wr_activity = array();
$days = array("월", "화", "수", "목", "금", "토", "일");
foreach ($days as $day) {
    if (isset($_POST["wr_activity"][$day])) {
        $wr_activity[$day] = implode(',', $_POST["wr_activity"][$day]);
    } else {
        $wr_activity[$day] = '';
    }
}

// 유효성 검사
if (empty($wr_1) || empty($wr_3) || empty($wr_4) || empty($wr_6) || empty($wr_16) || empty($wr_17)) {
    alert('필수 항목이 누락되었습니다.');
    exit;
}

// 데이터베이스에 저장
$sql = "INSERT INTO g5_activity_support (
            wr_1, wr_2, wr_3, wr_4, wr_5, wr_6, wr_7, 
            wr_8, wr_9, wr_10, wr_11, wr_12, wr_13, wr_14, wr_16, wr_17, 
            wr_activity_mon, wr_activity_tue, wr_activity_wed, 
            wr_activity_thu, wr_activity_fri, wr_activity_sat, wr_activity_sun)
        VALUES (
            '{$wr_1}', '{$wr_2}', '{$wr_3}', '{$wr_4}', '{$wr_5}', '{$wr_6}', '{$wr_7}', 
            '{$wr_8}', '{$wr_9}', '{$wr_10}', '{$wr_11}', '{$wr_12}', '{$wr_13}', '{$wr_14}', 
            '{$wr_16}', '{$wr_17}', '{$wr_activity['월']}', '{$wr_activity['화']}', 
            '{$wr_activity['수']}', '{$wr_activity['목']}', '{$wr_activity['금']}', 
            '{$wr_activity['토']}', '{$wr_activity['일']}')";

if (sql_query($sql)) {
    alert('신청서가 성공적으로 제출되었습니다.', G5_URL);
} else {
    alert('신청서 제출 중 오류가 발생했습니다. 다시 시도해주세요.');
}

include_once(G5_PATH.'/tail.php');
?>
 

 

 

안녕하세요 혹시 이거 DB에는 어떻게 등록 하나요 저는 저 코드로는 잘 되지 않는 것 같구요 PHPMYADMIN에서 어떻게 등록 하는지 궁금 합니다.
그리고 적용은 했는데 체크는 잘되는데 뷰 페이지에서 체크 된 항목이 보이지 않아서요

정답은 없습니다만, 만약 제가 작업한다면 아래와 같이 작업할 것 같습니다.

사람인 등의 구직 사이트 이용해보신적 있으시죠?

이력서 작성할때 최종 학력이나 경력 입력하는 방식과 동일하게 작업하면

- 한 줄로 입력 후 +/- 버튼으로 다음 줄 추가/삭제
 

가시성과 사용성을 모두 챙길 수 있습니다.

 

도움이 되셨다면 채택 한번 부탁드립니다^^

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

회원로그인

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