현재 페이지에서 체크박스를 여러개 만들고 선택된 값을 넘겨서 받는것은 여간 귀찮은 일이 아니다.
우선 이제까지 해오던 방식을 살펴보면..
<input type="checkbox" name="cd0" value="20">x
<input type="checkbox" name="cd1" value="30">y
<input type="checkbox" name="cd2" value="100">z
<input type="checkbox" name="cd1" value="30">y
<input type="checkbox" name="cd2" value="100">z
[PHP Part]
$total = ;
for($i=0;$i<3;$i++){
$amount = $_POST['cd'.$i];
$total += $amount;
}
echo $total
for($i=0;$i<3;$i++){
$amount = $_POST['cd'.$i];
$total += $amount;
}
echo $total
위와 같이 폼네임을 각각 비슷하게(하지만 똑같지는 않게)만들고 PHP부분에서 포문을 돌려 폼네임을 만들어 POST값을 받아오는, 아주 불편한 방식이었다.
이제는 최근 알아낸 기법을 살펴보면..
<form action="testcheckbox.php" method="POST" name="form1">
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="20">
JAVA<br>
<input type="checkbox" name="cd[]" value="30">
PERL<br>
<input type="checkbox" name="cd[]" value="10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="30">
C#<br>
<input type="checkbox" name="cd[]" value="90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="100">
C++<br>
<input type="checkbox" name="cd[]" value="120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form><form action="testcheckbox.php" method="POST" name="form1">
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="20">
JAVA<br>
<input type="checkbox" name="cd[]" value="30">
PERL<br>
<input type="checkbox" name="cd[]" value="10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="30">
C#<br>
<input type="checkbox" name="cd[]" value="90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="100">
C++<br>
<input type="checkbox" name="cd[]" value="120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form>
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="20">
JAVA<br>
<input type="checkbox" name="cd[]" value="30">
PERL<br>
<input type="checkbox" name="cd[]" value="10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="30">
C#<br>
<input type="checkbox" name="cd[]" value="90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="100">
C++<br>
<input type="checkbox" name="cd[]" value="120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form><form action="testcheckbox.php" method="POST" name="form1">
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="20">
JAVA<br>
<input type="checkbox" name="cd[]" value="30">
PERL<br>
<input type="checkbox" name="cd[]" value="10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="30">
C#<br>
<input type="checkbox" name="cd[]" value="90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="100">
C++<br>
<input type="checkbox" name="cd[]" value="120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form>
[PHP Part]
<?php
$totalprice = 0;
foreach($_POST['cd'] as $cd) $totalprice += $cd;
echo "$totalprice";
?>
$totalprice = 0;
foreach($_POST['cd'] as $cd) $totalprice += $cd;
echo "$totalprice";
?>
폼네임을 "cd[]" 이런식으로 네임 끝에 배열 기호인 '[]' 을 붙이면, POST값으로 넘어가서는 '[]' 부분을 뺀 나머지 부분 즉 'cd' 부분이 POST의 배열의 연관배열 인덱스가 되어 참조할수 있다.