首页 > 解决方案 > 不显示警报消息框

问题描述

我有以下用于插入记录的代码行。我想显示一个警告消息框,说明记录添加成功。但是,记录插入成功,但消息框不显示,直接打开 main.php 文件。如何显示消息以及打开 main.php

$stmt = $link->prepare("INSERT INTO users (name, address, mobile, 
email) VALUES ('$name', '$address', '$mobile', '$email');
if(mysqli_stmt_execute($stmt)){
  echo '<script>alert("Record added successfully")</script>';
  header("location: main.php");
      exit();
 } else{
     echo "No record added. Something wrong.";
 }

标签: php

解决方案


通过问题中给出的 PHP,我们可以看到一个警报语句被回显,但紧随其后的是对 header 的调用。这是在服务器上执行的,将立即执行。这是问题中报告的行为(直接转到 main.php 而没有看到警报)。

用户需要看到警报和重定向到 main 仅在他们准备好这样做(即响应警报)时发生。

因此重定向需要在客户端完成。改变:

echo '<script>alert("Record added successfully")</script>';
header("location: main.php");

至:

echo '<script>
      alert("Record added successfully");
      window.location="main.php";
</script>';

然后用户应该会看到警报,他们的系统将等待他们响应它,然后再重新定位到 main.php


推荐阅读