在php中获取多个复选框的值

时间:2013-06-10 09:06:07

标签: php checkbox

我有一个表单,其中包含从具有唯一ID的DB中提取的行上的不同数据。每个数据都有两个具有特定值的复选框。

无论是否选中,我都需要获取数据的唯一ID和两个复选框的值。

Example:

General Config            [] Read    [] Write
Manage Admin Account      [] Read    [] Write
Manage Adverts            [] Read    [] Write
Manage Articles           [] Read    [] Write
Manage Groups             [] Read    [] Write

如果用户检查每一行的一个或两个复选框,我希望得到一个具有唯一ID行的数组,该行选中复选框,并检查复选框的值。

这是我的代码:

<form action="test.php" method="post">

<table width="400" border="0">
<?php
@include "../inc/db.php"; 

$all_mod_qry = @mysql_query("select * from `adm_modules` order by module_name");
while($all_mod_row = @mysql_fetch_assoc($all_mod_qry))
{
    echo '<tr>
    <td width="45%">
<p>
<label><span>'.$all_mod_row['module_name'].'</span></label>
  <div class="clear"></div>
</p>
    </td>
    <td>
<p>
<label><input name="mod_id[][]" type="checkbox" value="'.$all_mod_row['id']['read'].'" /> <em>Read</em> </label>
  <div class="clear"></div>
</p>
    </td>
    <td>
<p>
<label><input name="mod_id[][]" type="checkbox" value="'.$all_mod_row['id']['write'].'" /> <em>Write</em> </label>
  <div class="clear"></div>
</p>
    </td>
  </tr>';   
}

?>
</table>


<p>
<input class="submit_btn" type="submit" name="new_subt" value="Create" />
</p>

</form>


<?php


if (isset($_POST['new_subt'])) {

foreach ($_POST['mod_id'] as $mod_id => $mod_right_arr)
{
    $module[$mod_id] = array();

    foreach ($mod_right_arr as $key => $value)
    {
        $module[$mod_id][$key] = $value;
    }
}


}


?>

试图让它发挥作用,但事实并非如此。

真的需要帮助,并将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

尝试提供类似

的复选框名称
<label><input name="mod_id[]" type="checkbox" value="'.$all_mod_row['id']['read'].'" /> <em>Read</em> </label>

单维...并尝试让它们像

$checks = $_POST['mod_id'];

如果可能的话,尝试为读取和写入提供两个名称数组,您可以更轻松地选择和检索所选数据