我有一个具有一个类别字段的表单。用户可以选择0个或更多,然后选择1个类别(使用复选框)。 这些类别存储在cat变量中,或者我按照
获取所选类别的数量<input type="checkbox" name="cats[]" id="3" value="1"> 1
$num=count($_POST['cats']);
问题是当没有选择类别时,没有初始化cat数组,因此返回错误。
所以问题是,如果没有类别选择,$ num的值变为0,值$_POST['cats'][0]="No category"
答案 0 :(得分:2)
您应该检查$_POSTS
数组是否具有cats
键:
if(isset($_POST['cats']))
//do things here with cats :)
另一种方法是:
if(array_key_exists('cats', $_POST))
//do things here with cats :)
答案 1 :(得分:1)
如果你这样做:
if (!isset($_POST['cats'])) {
$_POST['cats'] = array();
}
然后$_POST['cats']
将始终是一个数组。但如果用户没有选择任何内容,则为空数组
答案 2 :(得分:1)
if(empty($_POST['cats'])){
$num=0;
$_POST['cats'][0]="No category";
}
但是,您应该避免自行修改$ _POST数组,将内容复制到另一个数组之前并修改它。