반응형
PHP 폼 태그 checkbox 데이터를 가져와 쿼리문 만들기 샘플 소스 코드
form 데이터 전송 시 checkbox 태그 데이터를 가져와 PHP 코드에서 데이타베이스 쿼리문을 만들어 내는 간단한 샘플 소스 코드입니다. checkbox 태그를 사용하게 되는 경우 개인적으로 바로 갖다 쓰려고 하는 용도로 글을 작성하였습니다.
소스
소스 구문상 어려운 내용은 없으며 $str 변수에 싱글쿼테이션과 콤마 문자를 추가하는 간단한 소스 코드입니다. 매번 갖다 복사해서 쓰느라 그냥 지나쳤는데 checkbox 태그에 name 이름이 배열 표시가 돼 있었네요? 굳이 [](배열) 붙이지 않았던 기억이 나기도 하는데 테스트해 보니 [] 배열 문자를 빼면 checkbox 데이터가 한 개 이상은 가져오지 않으니 참고하시면 좋을 것 같습니다.
<?php
header('Content-Type: text/html; charset=UTF-8');
if(isset($_POST['submit'])){//폼데이터가 전송되었다면
if(!empty($_POST['list'])){
$form_data = $_POST['list'];
for($i=0; $i < count($form_data); $i++){
$str .= "'" . $form_data[$i] . "'" . ',';
}
$str = substr($str, 0, -1);//쿼리문 오류 방지를 위해 문자열 중 마지막 문자 콤마 제거
$query = "SELECT * FROM 테이블이름 WHERE name IN($str)";
echo("<h3>폼전송 이후 쿼리문 - $query </h3>");
}else{
echo('<h3>확인 : 체크박스가 선택되지 않았습니다.</h3>');
}
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']?>">
<p><h1>PHP checkbox 데이터를 가져와서 DB에 넣어보자.</h1></p>
<input type="checkbox" name="list[]" value="1" /><label>아이유</label><br>
<input type="checkbox" name="list[]" value="2" /><label>토마토</label><br>
<input type="checkbox" name="list[]" value="3" /><label>바나나</label><br>
<input type="checkbox" name="list[]" value="4" /><label>수박</label><br>
<input type="checkbox" name="list[]" value="5" /><label>호박</label><br>
<input type="checkbox" name="list[]" value="6" /><label>참외</label><br>
<input type="submit" name="submit" value="전송~" />
</form>
결과 화면
폼 태그 안 checkbox 데이터를 가져와 쿼리문을 만드는 샘플 소스 코드를 간단히 작성해 보았으니 필요하신 분들은 참고하시면 좋을 것 같습니다.
반응형