为了账号安全,请及时绑定邮箱和手机立即绑定

删除确认 HREF Sweet Alert

删除确认 HREF Sweet Alert

PHP
慕桂英4014372 2022-01-14 16:45:53
我似乎无法用该论坛的相同逻辑解决这个问题。我正在开发一个预订模块,它具有确认或取消预订的功能。这是我的PHP代码,它告诉您预订是否已确认、取消或尚未确认。Status==0(Not Confirmed yet) - 默认一个,Status==1(Confirmed) 和Status==2(Cancelled)<?phpsession_start();error_reporting(0);include('includes/config.php');if(strlen($_SESSION['alogin'])==0)    {   header('location:index.php');}else{if(isset($_REQUEST['eid']))    {$eid=intval($_GET['eid']);$status="2";$sql = "UPDATE tblbooking SET Status=:status WHERE  id=:eid";$query = $dbh->prepare($sql);$query -> bindParam(':status',$status, PDO::PARAM_STR);$query-> bindParam(':eid',$eid, PDO::PARAM_STR);$query -> execute();$msg="Booking Successfully Cancelled";}if(isset($_REQUEST['aeid']))    {$aeid=intval($_GET['aeid']);$status=1;$sql = "UPDATE tblbooking SET Status=:status WHERE  id=:aeid";$query = $dbh->prepare($sql);$query -> bindParam(':status',$status, PDO::PARAM_STR);$query-> bindParam(':aeid',$aeid, PDO::PARAM_STR);$query -> execute();$msg="Booking Successfully Confirmed";}<?php $sql = "SELECT tblbooking.Status";$query = $dbh -> prepare($sql);$query->execute();$results=$query->fetchAll(PDO::FETCH_OBJ);$cnt=1;if($query->rowCount() > 0){  foreach($results as $result){?>if($result->Status==0){echo htmlentities('Not Confirmed yet');} else if ($result->Status==1) {echo htmlentities('Confirmed');}else{echo htmlentities('Cancelled');}这是原始代码,将通过基本Javascript警报确认/取消预订<td><button class="btn btn-sm btn-primary"><a href="manage-bookings.php?aeid=<?php echo htmlentities($result->id);?>" onclick="return confirm('Do you really want to Confirm this booking')"> <i style="color: #fff;" class='fa fa-check'></i></a></button><button class="btn btn-sm btn-danger"><a href="manage-bookings.php?eid=<?php echo htmlentities($result->id);?>" onclick="return confirm('Do you really want to Cancel this booking')"> <i style="color: #fff;" class='fa fa-close'></i></a></button></td>
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

在我看来,您实际上从未将任何数据发送回服务器。


内置的 javascript 确认对话框会中断您的超链接,然后在您点击 OK 后允许它恢复。


Sweetalerts 似乎不这样做。因此,您永远不会重定向到您需要访问的页面。您可以使用 javascript 重定向到正确的 URL,或者您可以为您尝试执行的操作编写服务器端 API,并在“willDelete”案例中从 AJAX 调用该 API。


这是前一个选项:


<script>

    function confirmation(ev) {

        ev.preventDefault();

        var urlToRedirect = ev.currentTarget.getAttribute('href'); //use currentTarget because the click may be on the nested i tag and not a tag causing the href to be empty

        console.log(urlToRedirect); // verify if this is the right URL

        swal({

            title: "Are you sure you want to tag this booking as confirmed",

            text: "You will not be able to revert this!",

            icon: "warning",

            buttons: true,

            dangerMode: true,

        })

        .then((willDelete) => {

            if (willDelete) {

                // redirect with javascript here as per your logic after showing the alert using the urlToRedirect value

                window.location.href = urlToRedirect;

            } else {

                swal("You booking hasn't been confirmed.");

            }

        });

    }

</script>


查看完整回答
反对 回复 2022-01-14
  • 1 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号