问题
一个表单元素允许用户选择多个选项,如下拉菜单或一组复选框,不过PHP只能看到其中一个提交值。
解决方案
表单元素名末尾加一对中括号([])。
命名一组复选框
<input type="checkbox"name="boroughs[]" value="bronx"> The Bronx
Brooklyn
Manhattan
Queens
Staten Island
处理提交的一组复选框
if (isset($_POST['boroughs']) && is_array($_POST['boroughs'])) {
print 'I love '.join(' and ', $_POST['boroughs']).'!';
} else {
// 如果$_POST['boroughs']未设置或不是数组,则打印错误信息
echo 'Error: No boroughs provided or the input is not in the correct format.';
}
在表单元素名末尾加上[],这就告诉PHP要把接收到的数据处理为一个数组而不是一个标量。PHP看到为这个变量赋多个提交值时,它会保留所有这些值。