处理已检查的复选框PHP

时间:2011-03-30 17:21:14

标签: php checkbox

我有一个表从数据库中获取数据,如下所示:(不是表单)

if (mysql_num_rows($result)) {
        echo "<table id='logs' border='1' cellspacing='0' width='62%'>";
        echo "<tr>";
        echo "<th width='15%'>Time Registered</th>";
        echo "<th width='15%'>Username</th>";
        echo "<th width='15%'>Password</th>";
        echo "<th width='15%'>IP Address</th>";
        echo "<th width='2%'><a href=\"#\" onclick=\"checkAll(this);\">Mark</a></th>";
        echo "<th width='2%'>Delete</th>";

        echo "</tr>";
        while ($row = mysql_fetch_row($result))
        {
            echo "<tr>";
            echo ("<p><td>$row[2]</td><td>$row[0]</td><td>$row[1]</td><td><i>$row[3]</i></td><td><center><input type=\"checkbox\" name=\"mark[]\"/></center></td><td><a href=\"delete.php?time=$row[2]&user=$row[0]&pass=$row[1]&ip=$row[3]\"><center>[x]</center></a></td></p>");
            echo "</tr>";
        }
        echo "</table>";
}

部分<input type=\"checkbox\" name=\"mark[]\"/>是复选框。如何查找和处理选中的复选框?

if(mark[$checked]) {
     //delete data from database if row checked
}

3 个答案:

答案 0 :(得分:3)

foreach($_REQUEST['mark'] as $value){
    echo "$value was selected\n <br />";
}

如果你想知道哪一个没有被选中,那么将所有可能的选择存储到一个数组中并走出这个数组并做一些像

foreach($poss_select as $key=>$val){
    if(!in_array($val,$_REQUEST['mark']){
        $not_selected[$key] = $value;
    }else{
        deleteRow($value);
    }
} 

答案 1 :(得分:2)

$_REQUEST[ 'mark' ]将是所有复选框的数组。

答案 2 :(得分:0)

您需要执行一些AJAX或表单提交,以将该复选框数据传递给PHP进行处理。

但在此之前,您需要在这些复选框中包含值属性。目前,$ _POST ['mark'](如果您使用POST提交表单)将是一个基于0的已选中复选框的数组(并且只有已选中的复选框)。

我建议输出用户ID作为复选框的值,以帮助识别标记的用户。

然后你可以做

foreach ($_POST['mark'] as $marked) {
    // $marked would contain the value attribute of the checked checkboxes
    // and you could run a SQL query for each value of $marked.
}