使用多个复选框进行PHP表单处理

时间:2014-01-18 13:10:42

标签: php html checkbox

我有一个从数据库中提问的页面,并自动生成一个调查页面。然后使用POST将此数据发送到相同的表单。然后代码将问题分解为Checkbox / Radio按钮类型,并适当地存储答案。

这对我的单选按钮类型问题非常有效,但对于复选框类型,$ _POST数据中只有最后选择的选项。

这是示例复选框问题的生成HTML -

1 . Question One 
  <br/>
<fieldset>

        <label for="check[0]">
  <input type="checkbox" class="checkbox" id="check[0]" name="check[0]" value="Opt One" required="required" minlength="2">Opt One 
  </label>

   <br />
      <label for="check[1]"><input type="checkbox" class="checkbox" id="check[1]" name="check[0]" value="Opt Two">Opt Two 
  </label>

   <br />
      <label for="check[2]"><input type="checkbox" class="checkbox" id="check[2]" name="check[0]" value="Opt Three">Opt Three 
  </label>

   <br />
      <label for="check[3]"><input type="checkbox" class="checkbox" id="check[3]" name="check[0]" value="Opt Four">Opt Four 
  </label>

   <br />
    <label for="0" class="error" style="display:none"> Please select at least one option. </label>
  <br/>
</fieldset>

例如,如果这是唯一的问题,我选择“Opt One”和“Opt Two”,则print_r($ _ POST)显示以下内容 -

Array ( [check] => Array ( [0] => Opt Two ) 

这基本上意味着问题ID 0的选择选项是选项二(Opt One已经错过了这里)。

如果需要,我可以显示更多代码,但截至目前我觉得这与我的HTML语法有关。

2 个答案:

答案 0 :(得分:1)

<input type="checkbox" name="check[]" value="Opt One" checked>
<input type="checkbox" name="check[]" value="Opt Two" checked>
<input type="checkbox" name="check[]" value="Opt Three" checked>

<?php print_r( $_POST["check"] ); ?>

输出:

Array ( [0] => Opt One, [1] => Opt Two, [2] => Opt Three ) 

答案 1 :(得分:0)

您可以使用name=check[],然后查看$_POST

中的内容