我有一段PHP代码,它有效,但我很想知道原因。
Green: <input type="checkbox" name="color[]" value="green" />
Black: <input type="checkbox" name="color[]" value="black" />
White: <input type="checkbox" name="color[]" value="white" />
Blue: <input type="checkbox" name="color[]" value="blue" />
Red: <input type="checkbox" name="color[]" value="red" />
然后这就是我在下面的PHP代码中没有得到的,$ color是一个数组,我认为你必须至少有$ colors [] = $ _POST [&#39; color&#39 ;。]
if (isset($_POST['color'])) {
$colors = $_POST['color'];
}
echo $colors[0];
感谢您帮助我更好地理解这一点。
答案 0 :(得分:1)
您不需要在PHP中明确添加[]
。请注意,您甚至不需要定义类型!这是PHP:)
$_POST['color']
是一个数组,因此$colors
也是!
阅读:http://www.html-form-guide.com/php-form/php-form-checkbox.html
在PHP中,如果您编写$colors[] = $var
,实际上是将$var
添加到该数组的末尾。如果数组为空,$colors[0] == $var
。
$colors = $_POST['color']; // $colors receives the array
$colors[] = $_POST['color']; // $colors[0] receives the array, if $colors was empty
更多信息:http://php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying
答案 1 :(得分:1)
在HTML中,名称中带有[]的每个元素都将被视为数组。
在以下情况下很有用:
nm /home/luca/.local/lib/libodbcinst.so | grep SQLGetPrivateProfilString
现在您将在php中将它们作为数组访问:
Choose your interests<br/>
<input type='checkbox' name='interests[]' value='Fashion'> Fashion
<input type='checkbox' name='interests[]' value='Cars'> Cars
<input type='checkbox' name='interests[]' value='Health'> Health
<input type='checkbox' name='interests[]' value='Programming'> Programming