【问题标题】:Deleting database data with button in table使用表中的按钮删除数据库数据
【发布时间】:2019-02-20 15:51:22
【问题描述】:

我的网络应用程序上有一个搜索页面,该页面在我的数据库中的事件表中搜索事件。我想要它,以便在搜索结果的末尾有一个删除按钮,能够删除数据库条目,但在删除数据之前还有一个弹出警告框。

我的搜索结果显示如下代码:

if(mysqli_num_rows($result) > 0) {

echo "<br>Result Found: ";
echo "<br><table>";

While($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>Event Number: " . $row['EventID'] . "</td>";
echo "</tr><tr>";
echo "<td>Location: " . $row['Location'] . "</td>";
echo "</tr><tr>";
echo "<td><input type='button' name='Delete' value='Delete' onClick='getConfirmation();'></td>";               
		}
echo "</table

我不太确定要在 javascript 函数中添加什么。我希望它出现一个基本的警报框,如果用户单击确定按钮,那么操作将是“delete.php”,理想情况下会出现另一个弹出窗口,上面写着“成功删除记录”。我还需要确保从记录中获取 eventID,以便成功删除它。到目前为止,我拥有的 JS 函数:

<script type = "text/javascript">
         <!--
            function getConfirmation() {
               var retVal = confirm("Are you sure you would like to delete this record?");
               if( retVal == true ) {
                  delete.php 
                  document.write("Record deleted successfully");
               }
               else {
                  return false;
               }
            }
         //-->
      </script>  

我知道这是错误的,但我想知道如何解决这个问题? 我也可以说,如果他们按下是,php 会执行而不是去 delete.php?

【问题讨论】:

  • 它非常广泛,但您正在寻找的技术称为“AJAX”。有多种使用 AJAX 与 JavaScript 和 PHP 的示例来帮助您入门。

标签: javascript php html


【解决方案1】:

为此,您需要在 onclick 事件中传递 eventId,如下所示:

if(mysqli_num_rows($result) > 0) {

echo "<br>Result Found: ";
echo "<br><table>";

While($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>Event Number: " . $row['EventID'] . "</td>";
echo "</tr><tr>";
echo "<td>Location: " . $row['Location'] . "</td>";
echo "</tr><tr>";
echo "<td><input type='button' name='Delete' value='Delete' onClick='getConfirmation(".$row['EventID'].");'></td>";               
        }
echo "</table>";

在您的 JS 代码中,您需要: 1.在你的js函数中获取eventId。 2.调用ajax删除那个事件。 3. 显示成功后提示

       <script type = "text/javascript">
            function getConfirmation(eventId) {
               var retVal = confirm("Are you sure you would like to delete this record?");
               if( retVal == true ) {
                   $.ajax({
                      url: "delete.php",
                      method: "POST",
                      data: {eventId: eventId},
                      success: function (response) {
                             if(response.status) {
                                 alert("Record Deleted Successfully");
                             }
                      }
                 });
               }  else {
                  return false;
               }
            }
      </script>

另外,在你的 delete.php 文件中,你需要通过 $_POST['eventId'] 获取 eventId 并且你可以执行删除查询。你需要发回状态。希望对你有帮助。

【讨论】:

  • 我不会假设 OP 正在使用 jQuery。如果没有 jQuery,则应使用 fetch(对于现代浏览器)或 XMLHttpRequest(对于旧浏览器)而不是 $.ajax。
  • 是的,如果 OP 没有使用 jQuery,那么他/她需要使用 XMLHttpRequest 在 javascript 中调用 ajax。
猜你喜欢
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多