PHP文件中JavaScript无法运行:header跳转先于函数执行
解决PHP中header跳转导致JS脚本不执行的问题
方案一:用JavaScript实现跳转(直接满足需求)
把PHP的header()跳转逻辑移到JavaScript里,让浏览器先执行弹窗再跳转:
iniciales(); function iniciales(){ echo '<script type="text/javascript"> alert("test"); // 弹窗完成后执行跳转 window.location.href = "Lista_libros.php"; </script>'; }
原理:PHP先把这段JS代码输出给浏览器,浏览器解析时会先执行alert弹窗,再触发跳转命令,不会被PHP的header直接打断。
方案二:用Session传递提示(更兼容的方案)
如果必须保留PHP的header跳转,可以把提示内容存在Session里,跳转到目标页面后再显示弹窗:
1. 当前页面代码:
session_start(); // 将提示内容存入Session $_SESSION['alert_msg'] = 'test'; // 执行跳转并终止脚本 header('Location: Lista_libros.php'); exit;
2. 目标页面(Lista_libros.php)代码:
session_start(); // 检查是否存在提示信息 if (isset($_SESSION['alert_msg'])) { echo '<script type="text/javascript"> alert("'.$_SESSION['alert_msg'].'"); </script>'; // 清除Session,避免重复显示提示 unset($_SESSION['alert_msg']); }
原理:Session在服务器端暂存提示内容,跳转后目标页面读取Session并输出弹窗脚本,确保用户能看到提示。
内容的提问来源于stack exchange,提问作者iker Caballero cano
相关产品推荐
相关产品推荐

