将一组值作为发布数据传递给document.forms []。方法?

时间:2013-08-01 14:53:13

标签: php javascript

在我的HTML中,我有这个,

    <tr>
        <td class="grid_cell" width="5%">
            <input type="checkbox" name="workspace_trees_rpt_target" id="<?php echo $t["tree_id"];?>" value="<?php echo $t["tree_id"];?>" />
        </td>
    </tr>

这是在一个循环中所以将显示的是许多具有不同值的复选框。在我的剧本中,我有这个,

    if(confirm("Delete cannot be undone, click OK button to proceed.")) {
        document.forms[0].method="POST";
        document.forms[0].action="delete.php";
        document.forms[0].submit();     
    }

选中其中两个复选框并单击“确定”按钮后,我会转到delete.phpprint_r我的帖子数据。但是当显示print_r的结果时,它只显示已选中复选框的一个值,但我期待其中两个。我如何能够这样做,当我选中多个复选框时,复选框的发布数据将是已选中复选框的值数组?

2 个答案:

答案 0 :(得分:2)

您必须将输入的名称设置为数组:

name="workspace_trees_rpt_target[]"

答案 1 :(得分:0)

您为所有复选框指定了相同的名称。因此只能返回一个值。

更改为

<input type="checkbox" name="workspace_trees_rpt_target[]" id="<?php echo $t["tree_id"];?>" value="<?php echo $t["tree_id"];?>" />

然后在您的PHP代码中,您将得到$ _POST ['workspace_trees_rpt_target'] []

的数组

所以像这样处理:

if ( isset( $_POST['workspace_trees_rpt_target'] ) ) {
    // at least one checkbox has been ticked
    foreach ( $_POST['workspace_trees_rpt_target']  as $checkboxe ) {
         // do whatever $checkbox it will be set to the value="" that you set earlier
    }
}