如何回复复选框组?

时间:2011-07-18 00:33:50

标签: php html css xhtml

有人能帮助我吗?我无法通过多项选择回显我的复选框组。 每当我回复复选框组时,唯一显示的是我检查的最后一个框。

这是我的代码

<?php
$submit = $_POST['submit'];
$incharge = $_POST['incharge'];

if ($submit)
{
   echo $incharge;
}

?>

<table width="500" height="69">
      <tr>
        <td width="73"><label>
          <input type="checkbox" name="incharge" value="1" id="responsible_0" />
          MNFA</label></td>
          <td width="72"><label>
          <input type="checkbox" name="incharge" value="2" id="responsible_1" />
          HJB</label></td>
          <td width="70"><label>
          <input type="checkbox" name="incharge" value="3" id="responsible_2" />
          JBG</label></td>
          <td width="75"><label>
          <input type="checkbox" name="incharge" value="4" id="responsible_3" />
          MSG</label></td>
          <td width="275"><label>
          <input type="checkbox" name="incharge" value="5" id="responsible_4" />
          MGR</label></td>
      </tr>
      <tr>
      <td height="33"><label>
          <input type="checkbox" name="incharge" value="6" id="responsible_5" />
          AAP</label></td>
          <td><label>
          <input type="checkbox" name="incharge" value="7" id="responsible_6" />
          EPM</label></td>
          <td><label>
          <input type="checkbox" name="incharge" value="8" id="responsible_7" />
          SGA</label></td>
          <td><label>
          <input type="checkbox" name="incharge" value="9" id="responsible_8" />
          JLL</label></td>
          <td><label>
          <input type="checkbox" name="incharge" value="10" id="responsible_9" />
          AFM</label></td> 
      </tr>
    </table>

提前谢谢..

4 个答案:

答案 0 :(得分:2)

将name属性更改为:

name="incharge[]"

这会产生一个数组,$ incharge。

请注意,您将无法回显该值;你需要“print_r”或循环它。

答案 1 :(得分:1)

您需要更改“input”元素的“name”属性,以通过在末尾添加方括号[]来指示它是一个数组。 $_POST['incharge']将是一个数组而不是字符串。

示例

<input type="checkbox" name="incharge[]" value="1" id="responsible_0" />

答案 2 :(得分:1)

仅发送最后一个值的原因是因为所有复选框都具有相同的名称,因此反复重命名它们。你想要的是将所有复选框分配给一个数组,如下所示:

name="incharge"更改为name="incharge[]"

然后你想要迭代它:

if ($submit)
{
    // PHP throws a fit if we try to loop a non-array
    if(is_array($incharge))
    {
        foreach($incharge as $val)
        {
            echo $val . '<br />';
        }
    }
}

答案 3 :(得分:0)

if(isset($_post['calculations'])
{
    $member = $_POST['member'];//get the total values in an array

    if(is_array($member))// confirm $member is an array
    {
        foreach($member as $names)
        {
            echo $names ."<br/>";//take the values 

        }
    }


<input type="checkbox" name="member[]" value="value1">