【问题标题】:Sweetalert confirm before delete in phpSweetalert 在 php 中删除之前确认
【发布时间】:2019-04-10 01:44:11
【问题描述】:

我想使用 sweetalert 的确认提示。但是我遇到了一些问题,当我单击“是”时,我的代码无法正常工作,即使我已经调用了删除函数,也没有任何反应。我唯一的问题是关于我的查询的 SWAL 一切正常。现在这是我的代码

这是我的 user_del.php

    <?php session_start();
if(empty($_SESSION['id'])):
header('Location:../index');
endif;
include("../dist/includes/dbcon.php");
$id=$_REQUEST['id'];
$result=mysqli_query($con,"UPDATE accounts_at SET status = 0 WHERE id ='$id'")
    or die(mysqli_error());
        if ($result !== false) {
 echo "<script type='text/javascript'>alert('Successfully archived a account!');</script>";
    echo "<script>document.location='index'</script>";
    }

?>

function archiveFunction(id) {
    event.preventDefault(); // prevent form submit
    swal({
        title: "Are you sure?",
        text: "You will not be able to recover this imaginary file!",
        type: "warning",
        showCancelButton: true,
        confirmButtonColor: '#DD6B55',
        confirmButtonText: 'Yes, delete it!',
        cancelButtonText: "No, cancel plx!",
        closeOnConfirm: false,
        closeOnCancel: false
    }).then(function (isConfirm) {
        if (isConfirm) {
            swal("Deleted!", "Your imaginary file has been deleted!", "success");
            window.location = 'user_del.php?id='+id;
        }
        else {
            swal("Cancelled", "Your imaginary file is safe :)", "error");
        }
    });
};
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
 <a id="removeme" onclick="archiveFunction(1)" href="#">Click to archived the data
</a>

【问题讨论】:

  • 我的问题不在于重定向。查询没有执行它什么也不做。我是否遗漏了代码中的某些内容?
  • var_dump($result);执行后执行 echo mysqli_info($con);
  • 我很困惑。因为我的归档函数和“ " 现在我需要将所有代码放在同一页面上吗?
  • 解释一件事!点击浏览器后重定向到“user_del.php?id=123”页面对吗?还是重定向到索引页面?
  • 是的,它重定向到索引页面

标签: php sweetalert


【解决方案1】:

这是因为你使用的是$_REQUEST,

由于你使用的是window.location = 'user_del.php?id='+id;GET METHOD,所以你需要使用$_GET来获取id

请在 user_del.php

上试试这个
<?php session_start();
if(empty($_SESSION['id'])):
header('Location:../index');
endif;
include("../dist/includes/dbcon.php");
$id=$_GET['id'];
$result=mysqli_query($con,"UPDATE accounts_at SET status = 0 WHERE id ='$id'")
    or die(mysqli_error());
        if ($result !== false) {
 echo "<script type='text/javascript'>alert('Successfully archived a account!');</script>";
    echo "<script>document.location='index'</script>";
    }

?>

【讨论】:

  • 我已经在使用 GET。但它什么也没做。我错过了什么吗?
  • @amaraaaa 如何从 $result=mysqli_query($con,"UPDATE accounts_at SET status = 0 WHERE id ='$id'") 更改为 $result=mysqli_query($con,"UPDATE account_at SET status = 0 WHERE id ='{$id}'")
  • 我已经更改了我的查询,但它什么也没做。您认为我的代码中缺少什么?
  • 尝试这样做? “UPDATE accounts_at SET status = 0 WHERE id ={$id}”@amaraaaa 我认为一切都是正确的,不正确的是你的桌子。
猜你喜欢
  • 1970-01-01
  • 2021-02-25
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
相关资源
最近更新 更多