【问题标题】:How to delete from MySQL database using PHP within a Javascript如何在 Javascript 中使用 PHP 从 MySQL 数据库中删除
【发布时间】:2018-03-10 09:04:27
【问题描述】:

我试图在 php 页面中按下按钮时运行以下脚本。该脚本应该从 MySQL 数据库表中删除一行。

我从其他先前的问题中读到,您不能在 php 页面中的 javascript 中使用 php,因为 php 与页面加载一起运行。现在按照它目前的状态,数据确实被删除了,但那是页面加载的时候。

在 php 页面中按下按钮时运行以下查询的正确方法是什么? (仅供参考,我正在使用 sweetalert)

<script>
    function alertdelete() {
        {
            swal({
                    title: "Are you sure?",
                    text: "This delete is permanent!",
                    icon: "warning",
                    buttons: true,
                    dangerMode: true,
                })
                .then((willDelete) => {
                    if (willDelete == true) {
                        <?php
                            mysqli_query($db, "DELETE FROM employee WHERE EMPNO='$id'");
                        ?>
                        swal("The employee has been deleted!", {
                            icon: "success",
                        });
                    } else {
                        swal("Ok, the employee will not be deleted!");
                        return;
                    }
                    <?php
                        openPage("employees.php",3000);
                    ?>
                });
        }
    }
</script>

【问题讨论】:

标签: javascript php html mysql


【解决方案1】:

使用 ajax 向具有删除功能的 php 文件发送请求 图片

   var xhttp = new XMLHttpRequest();
  xhttp.open("POST", "deletePage.php", true);
  xhttp.send();

如果你不想使用 xmlHttpRequest 方法,你可以使用 获取接口

fetch('url',{method: "POST",body="param=val"}).then((res)=>{//do something with response})

learn about fetch

“创建删除功能时不要忘记检查发布请求,如果您不小心访问了将删除的页面”

【讨论】:

    【解决方案2】:

    我将创建一个包含您的查询的 deleteRow.php 页面。确保在实际发送查询之前使用正确的验证。

    在您的 js 文件中使用 AJAX 来触发 delteRow.php 页面。

    这是 AJAX 的链接: http://api.jquery.com/jquery.ajax/

    【讨论】:

      【解决方案3】:

      使用 ajax(更好的方法是使用 JQuery 而不是普通的 javascript),如下所示:

      <script>
          function alertdelete() {
              {
                  swal({
                          title: "Are you sure?",
                          text: "This delete is permanent!",
                          icon: "warning",
                          buttons: true,
                          dangerMode: true,
                      })
                      .then((willDelete) => {
                          if (willDelete == true) {
                              var sendArray = {"id": YOUR_ROW_ID};
                              $.post("db_action.php", sendArray, function() {
                                  swal("The employee has been deleted!", {
                                      icon: "success",
                                  });
                              });
                          } else {
                              swal("Ok, the employee will not be deleted!");
                              return;
                          }
                      });
              }
          }
      </script>
      

      对于文件 db_action.php,您可以使用以下代码:

      <?php
            mysqli_query($db, "DELETE FROM employee WHERE EMPNO='$_POST[id]'");
      ?>
      

      【讨论】:

        猜你喜欢
        • 2017-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多