通过复选框选择多行时出错错误未定义索引:复选框

时间:2012-06-29 10:30:33

标签: php

我想从checkbox中选择多行,并希望通过按钮点击一次更新所有行。我尝试过几种方式..但是没有工作......你能帮忙吗?它显示错误为Undefined index: checkbox

<td>
    <input type="hidden" name="id" id="id" value="<?php echo $row["file_serial_id"]; ?>" />
    <input type="checkbox" name="checkbox[]" id="checkbox[]"  value="<?php echo $row['file_serial_id']?>" />
</td>

if(isset($_POST['send_btn']) and $_POST['send_btn']=="Send"){
    $checkbox = $_POST['checkbox']; //from name="checkbox[]"
    $countCheck = count($_POST['checkbox']);

    for($i=0;$i<$countCheck;$i++){
        $del_id = $checkbox[$i];
        $sql2 = "UPDATE retained_file_mst SET mark_to_dispose=1 WHERE file_serial_id='$del_id'";
        $result2 = mysql_query($sql2,$conn);
    }

    // if successful redirect to delete_multiple.php
    if($result2){
        echo "success";
    }else{
        echo "error";
    }
}

1 个答案:

答案 0 :(得分:0)

您可以像这样访问您的复选框:

$checkbox = isset($_POST['checkbox']) ? $_POST['checkbox'] : 0;

这允许您在用户输入时将其设置为正确的值,如果用户未选中则将其设置为0。

另一种选择是将其设置为0,这对于像数据库这样的东西可能更加空间保守。

修改

由于您实际上将它用作数组,因此会更好:

$checkbox = isset($_POST['checkbox']) ? $_POST['checkbox'] : array();

或者只是快速if查看$ checkbox是否为数组:

if(is_array($checkbox)){
    // do the for statement
}

P.S如果您希望人们理解您的问题,请使用代码格式。我这次为你做了这件事