首页 > 解决方案 > 在 PHP 中提交表单后的警报消息

问题描述

我正在使用带有 POST 方法的表单来应用会话,一旦提交表单,页面就会重新加载,并且我不能在屏幕上看到任何警报。

所以我使用了我在网上找到的一些技巧,但它有一个问题,在提交表单后弹出警报但页面设计不起作用,这意味着我只有空白页和警报消息。

单击“确定”关闭警报消息后,页面加载。

if(empty($_SESSION["shopping_cart"])) {
    $_SESSION["shopping_cart"] = $cartArray;
    $status = "Product is added to your cart!";
    header('location:product.php?status=success');
}else{
    $array_keys = array_keys($_SESSION["shopping_cart"]);
    if(in_array($code,$array_keys)) {
        $status = "Product is already added to your cart!";
        header('location:product.php?status=failed');
    } else {
        $_SESSION["shopping_cart"] = array_merge($_SESSION["shopping_cart"],$cartArray);
        $status = "Product is added to your cart!";
        header('location:product.php?status=success');
    }

}

// This right here responsible to alert the message according to the status.
if( $_GET['status'] == 'success') {
   echo '<script>  alert("welldone");   </script>';
}
else{
   echo '<script>  alert("no good");   </script>';
}

如何解决页面加载顺序,以便页面先加载,然后警报加载?

在此处输入图像描述

标签: javascriptphp

解决方案


经过长时间的研究,我找到了使用jQuerydelay()函数延迟警报消息的解决方案,该延迟允许HTML页面加载然后执行警报。感谢所有帮助我得到这个结果的人。

  <script>
      $(document).ready(function(){
          setTimeout(function() {
              <?php
              if( $_GET['status'] == 'success') {
                  echo 'alert("welldone");';
              }
              else{
                  echo 'alert("no good");';
              }
              ?>
              }, 500);
      });
  </script>

推荐阅读