【问题标题】:How can I add a check box to a data table to be used to delete the selected row?如何将复选框添加到数据表以用于删除选定的行?
【发布时间】:2013-07-16 08:40:04
【问题描述】:

我正在尝试在搜索结果的每一行中添加一个复选框,以允许从 MySQL 中删除选定的数据行,但我一直不知道该怎么做。

这是我想要添加删除功能的代码。

 echo '<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">';
    echo '<th>ID</th><th>Team</th><th>Last Name</th><th>First Name</th><th>Registered</th><th>Payment</th><th>Physical</th><th>Photo Taken</th><th>Member Photo</th><th>View Member</th><th>Edit Member</th><th>Delete</th>';
    while($rows = mysql_fetch_array($raw_results)){
    // If $color==1 table row color = #FFC600
    if($color==1){
    echo "<tr bgcolor='#C6E7F7'>
    <td><center>".$rows['id']."</td></center><td><center><img src='".$rows['logo_src']."'height='30' width='50'/></td><td><center>".$rows['last_name']."</td></center><td><center>".$rows['first_name']."</center></td><td><center>".$rows['registration']."</center></td><td><center>".$rows['pay_status']."</center></td><td><center>".$rows['physical']."</center></td><td><center>".$rows['photo']."</center></td><td><center><img src='".$rows['member_photo']."'height='30' width='50'/></center></td><td><center><a href=view_member.php?id=$rows[id]><img src=data/icons/viewmore.gif height='20' width='20' border='0'/></center></td><td><center><a href=edit_member.php?id=$rows[id]><img src=data/icons/viewmore.gif height='20' width='20' border='0'/></center></td><td><center></tr>";

所以最后一列是删除,我想在其下方的行中添加一个复选框,然后在搜索结果框下方添加一个按钮以删除选定的行。我不知道如何添加复选框。

这是结果页面的图片

【问题讨论】:

标签: php mysql


【解决方案1】:

将整个表格和按钮包装在一个表单中:

<form action="" method="post">
...
...
</form>

在您的 while 循环中,向删除单元格添加一个复选框:

// concatenate or echo as required
<input type="checkbox" name="delete[]" value="<?php echo (int)$rows['id']; ?>" />

确保您的按钮类型为submit

<input type="submit" value="Delete Selected" />

在 PHP 方面:

if(isset($_POST['delete']) && is_array($_POST['delete']) && count($_POST['delete']) > 0){
    foreach($_POST['delete'] as $deleteId){
        // run query to delete $deleteId
    }
}

这是因为 PHP 将名称为 delete[] 的复选框解析为原生数组

【讨论】:

  • 感谢您的帮助。记住我
【解决方案2】:

使用复选框数组 :) 为表中的每一行设置 input 字段:

<input type="checkbox" name="delete_list[]" value="{ID OF THE ENTRY}">

您将在$_POST['delete_list'] 中收到一个数组,您可以浏览该数组以查看选中了哪些复选框:)

不过,已经回答了:

【讨论】:

  • *$_POST['delete_list']
  • 已编辑 :) 复制/粘贴不便 ^^
【解决方案3】:
 echo '<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">';
echo '<th>ID</th><th>Team</th><th>Last Name</th><th>First Name</th><th>Registered</th><th>Payment</th><th>Physical</th><th>Photo Taken</th><th>Member Photo</th><th>View Member</th><th>Edit Member</th><th>Delete</th>';
while($rows = mysql_fetch_array($raw_results)){
// If $color==1 table row color = #FFC600
if($color==1){
echo "
 <tr bgcolor='#C6E7F7'>
        <td><center>".$rows['id']."</center></td>
        <td><center><img src='".$rows['logo_src']."'height='30' width='50'/></td>
        <td><center>".$rows['last_name']."</td></center>
        <td><center>".$rows['first_name']."</center></td>
        <td><center>".$rows['registration']."</center></td>
        <td><center>".$rows['pay_status']."</center></td>
        <td><center>".$rows['physical']."</center></td>
        <td><center>".$rows['photo']."</center></td>
        <td><center><img src='".$rows['member_photo']."'height='30' width='50'/></center></td>
        <td><center><a href=view_member.php?id=$rows[id]><img src=data/icons/viewmore.gif height='20' width='20' border='0'/></center></td>
        <td><center><a href=edit_member.php?id=$rows[id]><img src=data/icons/viewmore.gif height='20' width='20' border='0'/></center></td>
        <td><center><input type='checkbox' name='delete[]' value='".$rows['id']."'></center></tr>";

您将在一个数组中获得结果,您将在查询中使用该数组从 mysql 中删除行

【讨论】:

  • 谢谢,这正是我所需要的
【解决方案4】:

您可以使用此输入添加一个 col:

<input type="checkbox" name="delete[]" value="<?=$row['id]'?>" />

请检查您的 HTML 代码。无效...

【讨论】:

    【解决方案5】:

    这是代码,没有得到数组。

    if(isset($_POST['submit']))
    {
    
    $check=array($_POST['checkbox']);
    //$id_array = array($check);
     echo "<pre>";
    echo print_r($check);
    exit; 
    $id_count = count($_POST['checkbox']);
    
    for($i=0; $i < $id_count; $i++) {
        $id = $check[$i];
    
      //  if ($id > 0) 
        //{
    
                $res =mysql_query( "delete from employee WHERE  id ='$id'");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 2020-12-20
      • 2011-08-03
      • 2018-01-02
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多