2016-11-19 137 views
0

我很抱歉我的英语不好,以及基本问题。 我想问:如何使用删除按钮删除表格行

假设我已经显示了6列和行值的表。 在列的末尾有“选项标题”,行的选项为“删除按钮”。

像这样: 完整的表

enter image description here

我想要的是当我点击删除按钮选定行的所有值完全删除。

像这样: 后删除

enter image description here

这是我的PHP和HTML代码:

<tbody> 
    <tr> 
     <?php 
      while($getdata = mysqli_fetch_array($result)) 
      { 
      echo"<td>".$getdata['x_id']."</td>"; 
      echo"<td>".$getdata['x_title']."</td>"; 
      echo"<td>".$getdata['x_track']."</td>"; 
      echo"<td>".$getdata['x_tag']."</td>"; 
      echo"<td>".$getdata['x_model']."</td>"; 
      echo'<td><img class="img-table-thumbnail" src="'.$getdata['x_thumb'].'"></td>'; 
      echo'<td><a type="button" class="btn btn-sm btn-default" href="'.$getdata['x_link'].' " target="_BLANK">VISIT</a></td>'; 
      echo'<td><form action="delete.php" method="post" enctype="multipart/form-data"> 
      <button type="submit" name="deleteData" class="btn-sm btn-primary"><i class="fa fa-times-circle" aria-hidden="true"></i></button> 
      </form></td>'; 
      echo "</tr>"; 
      } 

      //$result = mysqli_query($db_connect,$sql); 

      $db_connect->Close(); 
      ?> 
    </tbody> 

和delete.php:

$id = (int)$_GET['id']; 

$update = $db_connect->prepare("DELETE FROM $db_table WHERE id = ?"); 
$update->bind_param('i', $id); 
$update->execute(); 
$update->close(); 


header("location:index.php"); 
?> 

寻找帮助,预先感谢任何答案。

+0

我很想念您在HTML中发送$ _GET ['id']的位置。在删除。php $ id什么值得到$ id? –

+0

你应该在表单中包含id,因为现在它不会发布任何内容。但是你也可以在表单中插入一个隐藏的输入,例如通过点击该行的id来设置该值。其次,'$ _POST'!='$ _GET' – Xorifelse

+0

也许我错过了$ _GET ['id'],但是当我更改为$ _GET ['x_id']时,它仍然没有任何反应。 @Antonio Milo –

回答

0

请下面的代码尝试:

注:我还没有看到完整的代码,但我已经改变那里是错误的分配/声明的代码。你可以随意调整

<tbody> 
<tr> 
    <?php 
     while($getdata = mysqli_fetch_array($result)) 
     { 
      echo"<td>".$getdata['x_id']."</td>"; 
      echo"<td>".$getdata['x_title']."</td>"; 
      echo"<td>".$getdata['x_track']."</td>"; 
      echo"<td>".$getdata['x_tag']."</td>"; 
      echo"<td>".$getdata['x_model']."</td>"; 
      echo'<td><img class="img-table-thumbnail" src="'.$getdata['x_thumb'].'"></td>'; 
      echo'<td><a type="button" class="btn btn-sm btn-default" href="'.$getdata['x_link'].' " target="_BLANK">VISIT</a></td>'; 
      echo'<td><form action="delete.php" method="post" enctype="multipart/form-data"> 
      <button type="submit" name="deleteData" class="btn-sm btn-primary" value=".$getdata['x_id']."><i class="fa fa-times-circle" aria-hidden="true"></i></button> 
      </form></td>'; 
      echo "</tr>"; 
     } 

     //$result = mysqli_query($db_connect,$sql); 

     $db_connect->Close(); 
    ?> 

Delete.php

$id = (int)$_POST['deleteData']; 

$update = $db_connect->prepare("DELETE FROM $db_table WHERE id = ?"); 
$update->bind_param('i', $id); 
$update->execute(); 
$update->close(); 


header("location:index.php"); 
?> 
0

您使用POST作为delete.php requestmethod的代码。这样做,你可以通过$ _POST ['id']获取你的id,而不是$ _GET ['id']。但在你的情况下,你没有任何形式控制来保存这个值。

$_POST$_GET

现在你有两个选择。

1.)通过将按钮重命名为“id”并将它的value属性设置为$ getdata ['your_field_with_id']来更改您的表单。在delete.php中,你必须将$ _GET ['id']更改为$ _POST ['id'],因为你通过POST发送formdata而不是GET。

echo ' 
<td> 
    <form action="delete.php" method="post" enctype="multipart/form-data"> 
     <button type="submit" name="id" value="', $getdata['your_field_with_id'], '" class="btn-sm btn-primary"> 
      <i class="fa fa-times-circle" aria-hidden="true"></i> DELETE 
     </button> 
    </form> 
</td>'; 

2)与下面的代码

echo ' 
<td> 
    <a href="delete.php?id=', $getdata['your_field_with_id'], '" class="btn btn-sm btn-primary"> 
     <i class="fa fa-times-circle" aria-hidden="true"></i> DELETE 
    </a> 
</td>'; 

您的形式更换山坳正如你可以看到我删除形式的通过一个简单的链接取代它,保存的标识记录。

就个人而言,我更喜欢第一个解决方案。