多项选择结果

时间:2015-02-16 11:21:40

标签: php search if-statement checkbox

您好我有以下问题:

$result1 = 'Produkt 1'; (contains in database: option1 = A, option2 = '')

$result2 = 'Produkt 2'; (contains in database: option1 = ABS, option2 = '1F')

$result3 = 'Produkt 3'; (contains in database: option1 = FP, option2 = 'F')

现在我有一个带有选项复选框的formsearch,我只想要检查的结果:

<input name="asia" type="checkbox" id="asia" value="A" />
<input name="bio" type="checkbox" id="bio" value="B" />
<input name="break" type="checkbox" id="break" value="F" />
<input name="piz" type="checkbox" id="piz" value="P" />
<input name="south" type="checkbox" id="south" value="S" />

<input name="glut" type="checkbox" id="glut" value="1" />
<input name="lak" type="checkbox" id="lak" value="F" />

伪代码:

if ($_POST of all checkboxes == ''){ 
   echo all results
}

if ($_POST['asia']!=''){
   echo only results with A in option1
}

if ($_POST['asia']!='' && $POST['bio']!=''){
      echo only results with A and B in option1
}

if ($_POST['break']!='' && $POST['piz']!='' && $POST['lak']!=''){
      echo only results with F and P in option1 and F in option2
}

我总是需要与所有选中的复选框进行比较的产品。

我知道我可以为if或elseif提供各种可能性,但有更快的方式,例如数组

非常感谢每一个建议

1 个答案:

答案 0 :(得分:2)

通常的方法是给所有复选框指定相同的名称(应以[]结尾,例如name="name[]"),然后将$_POST['name']视为包含值的数组所有选中的复选框。

您可以循环处理所有条目,或使用in_array查看是否有特定值。


如果您需要处理数据集,则可以使用:

<input type="checkbox" name="name[asia][]" value="foo">
<input type="checkbox" name="name[asia][]" value="bar">

然后$_POST['name']将是一个包含数组的关联数组。