2011-03-30 70 views
1

我有一个表从数据库中,像这样需要数据:(是不是一种形式)处理选中的复选框PHP

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
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); 
    } 
} 
2

$_REQUEST[ 'mark' ]将是一个数组所有的检查框。

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. 
} 
+0

所以我需要添加一个形式得到它的工作? – Kyle 2011-03-30 18:04:53