본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP form + view — SELECT 드롭다운 처리 완전 정리

by 왕진 2026. 6. 17.
반응형

 

 

Web Development · PHP form + select

PHP SELECT 드롭다운 —
긴 옵션 목록을 펼쳐서 1개 선택

행정구역(22개) 중 하나를 선택하는 드롭다운
시작 오늘 분석할 코드
<SELECT name="prefecture"> <OPTION value="" selected>----- 행정구역을 선택하여 주세요. -----</OPTION> <OPTION value="서울특별시">서울특별시</OPTION> <OPTION value="부산광역시">부산광역시</OPTION> ... (총 22개 OPTION) ... </SELECT>
<?php if($_POST["prefecture"] != ""){ print "행정구역:<BR>"; print $_POST["prefecture"]; }else{ print "행정구역을 선택하여 주세요.<BR>"; } ?>
용어 용어 정리
<SELECT>드롭다운(콤보박스) 입력
<OPTION>선택지 하나
value실제 서버로 전송될 값
selected기본 선택된 옵션
value="""아직 선택 안 함"을 빈 문자로
multiple여러 개 선택 허용 (name[]필요)
vs radio선택지 많을 때 select가 깔끔
실무국가, 카테고리, 시·도 선택

1 SELECT의 첫 OPTION = 안내
<OPTION value="" selected>----- 행정구역을 선택하여 주세요. -----</OPTION>

첫 옵션의 value=""로 두면 "아직 선택 안 함" 상태를 표현할 수 있다. 서버에선 빈 문자열인지로 검사.


2 검증 — 빈 문자열 체크
if ($_POST["prefecture"] != "") { // 사용자가 실제 옵션을 선택했음 } else { // 첫 안내 옵션 (또는 비어있음) }

3 select가 적합한 경우
· 옵션이 많을 때(5개 이상): 라디오 버튼은 화면을 잡아먹음
· 모바일 친화적: 휴대폰 OS의 네이티브 셀렉터로 표시
· 드물게 변경되는 값: 자주 안 보면서도 선택 가능

 

반응형

 

4 다중 선택 — multiple
<SELECT name="tags[]" multiple> <OPTION value="a">A</OPTION> <OPTION value="b">B</OPTION> </SELECT> // $_POST["tags"] === ["a", "b"] (선택된 것들의 배열)

checkbox와 비슷하게 name="tags[]" 형태로 받는다.


5 보안 — 화이트리스트 검증
$validList = ["서울특별시", "부산광역시", ...]; if (in_array($_POST["prefecture"], $validList)) { // 안전한 값 } else { die("유효하지 않은 행정구역입니다."); }

SELECT도 사용자가 도구로 조작하면 다른 value를 보낼 수 있다. 화이트리스트로 미리 검증.


6 자주 하는 실수
· 첫 OPTION에 의미있는 value 줘서 "선택 안 함"이 표현 안 됨
· selected 빼먹어 첫 옵션이 안내가 아니라 실제 옵션처럼 보임
· 화이트리스트 검증 누락 → 임의 값 입력 위험
· multiple에 [] 안 붙임 → 마지막 선택만 받힘

핵심 한 줄 요약

SELECT드롭다운 입력 (콤보박스)
OPTION value실제 서버로 가는 값
value="" 첫 옵션"선택 안 함" 안내
selected기본 선택 표시
multiple + [ ]다중 선택 가능
검증화이트리스트 in_array
활용국가·시도·카테고리 등 다수 옵션
반응형

댓글