Sweet Alert函数无法显示消息 求排查代码问题
问题原因及解决办法
你的问题核心在于SweetAlert的异步特性和页面跳转时机冲突:
- 原生
alert()是阻塞式函数,会暂停后续JS代码执行,必须等用户点击确定后才会执行跳转; - 但SweetAlert是异步非阻塞的,调用
swal()后代码会立刻执行后面的window.location.href,页面直接跳转,弹窗根本没机会渲染显示。
另外你代码里的字符串换行也会导致JS语法错误,直接在JS字符串中换行是不允许的,需要转成\n或者调整字符串写法。
修正后的代码示例
echo '<script>'; echo 'swal({ title: "操作成功", text: "Your request has been successfully filled and your Letter No is '.$Dep.'/'.$fy.'/'.$id.'.\nKindly submit the original copy of this letter to CRDS.", icon: "success" }).then(() => { window.location.href = "dashboard.php"; });'; echo '</script>'; exit;
关键改动点
- 把跳转逻辑放到
swal()的.then()回调里,确保用户点击弹窗确认按钮后才执行跳转; - 把字符串中的换行替换成
\n,避免JS语法报错; - 如果你用的是SweetAlert2,语法替换为
Swal.fire()即可,核心逻辑保持一致:通过回调控制跳转时机。
内容的提问来源于stack exchange,提问作者gorakh
相关产品推荐
相关产品推荐

