首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用php删除表格中的特定行

如何使用php删除表格中的特定行
EN

Stack Overflow用户
提问于 2018-06-27 03:08:27
回答 1查看 123关注 0票数 1

我想知道是否有可能通过表上的一个按钮从数据库中删除指定的行。下面是一个示例:

代码语言:javascript
复制
<thead>
   <tr>
      <th>Identity</th>
      <th>Name</th>
      <th>Stuff</th>
      <th>Action(Delete)</th>
   </tr>
</thead>
<tbody>
   <?php
      $con=mysqli_connect("","","","");
      // Check connection
      if (mysqli_connect_errno())
      {
      echo "Error " . mysqli_connect_error();
      } 

      $result = mysqli_query($con,"SELECT * FROM sm_admins");

      while($row = mysqli_fetch_array($result))
      {
      echo "<tr>";
      echo "<td>" . $row['identity'] . "</td>";
      echo "<td>" . $row['name'] . "</td>";
                                          switch ($row['level']) {
                                              case "hello" : echo "<td>Nice Try</td>";
                                                  break;
                                              case "bye" : echo "<td>Row in a row</td>";
                                                  break;
                                              case "Cake" : echo "<td>Lemon</td>";
                                                  break;
                                              case "ao" : echo "<td>Key</td>";
                                                  break;
                                              case "as" : echo "<td>Charger</td>";
                                                  break;

                                          echo "<td> <button class='btn btn-red btn-icon-only' onclick='deleterow(" . $row['identity'] . ")> <i class='fa fa-times'></i> </button></td>";
                                        }
      echo "</tr>";
      }
      echo "</table>";

      mysqli_close($con);
      ?>

例如,我在数据库中有两行,这在HTML表上创建了两个不同的行,我想知道是否可以使用HTML页面上每行末尾的按钮从数据库中删除指定的行

EN

回答 1

Stack Overflow用户

发布于 2018-06-27 03:20:42

有许多可行的方法。我能想到的最简单的构建在你的代码之上的代码是这样的:

代码语言:javascript
复制
<script>
function deleterow(rowid)
{
  var f = document.forms['theform'];
  f.rowid.value = rowid;
  f.submit();
}
</script>
<form name="theform" method="post">
<input type="hidden" name="rowid"/>
<input type="hidden" name="action" value="deleterow"/>
</form>

然后在你的PHP后端代码中,检查"deleterow“的$_POST["action"]并执行SQL delete,从deleterow获取值--确保正确地转义它,以避免SQL注入。

避免重新加载页面和重新呈现HTML的一种更优雅的方法是向后端发出AJAX调用,但这需要更多的工作。如果这是一个简单的应用程序,它的页面上永远不会有超过100行左右的行,并且永远不会有超过几个用户使用,那么它可能会比它的价值更麻烦。

确保您了解PHP如何与HTML/Javascript交互。PHP在服务器上执行。在客户机上呈现HTML并执行Javascript。在编写PHP时,您要做的是将HTML/Javascript发送到客户端以进行呈现/执行。然后,当您的客户端提交表单时,PHP将在服务器上执行以处理提交。与数据库通信的是服务器上的PHP。因此,在您的PHP代码中,应该包含如下内容:

代码语言:javascript
复制
function handle_action()
{
  $action = isset($_POST["action"]) ? $_POST["action"] : "";
  switch ($_POST["action"])
  {
    case "deleterow":
      handle_delete();
      load_data();
      break;
    default:
      load_data();
  }
}

function handle_delete()
{
  $rowid = isset($_POST["rowid"]) ? $_POST["rowid"] : "";
  if (!$rowid) return;
  mysqli_query("delete from sms_admins where identity = '".
mysqli_escape_string($rowid)."'");
}

function load_data()
{
  // put everything in your example here except for mysqli_connect
}

$con=mysqli_connect("","","","");
 // Check connection
if (mysqli_connect_errno())
{
    echo "Error " . mysqli_connect_error();
}

handle_action(); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51049907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档