【问题标题】:Alert box stuck in endless loop警报框卡在无限循环中
【发布时间】:2016-06-08 05:04:32
【问题描述】:

我有一个alert 框,它应该在用户单击“确定”时刷新页面。当用户单击“确定”时,警告框会消失,然后重新出现,而不是发生这种情况。

它陷入了无限循环的重新出现!

<?php
if(isset($_POST['submit'])) {
  echo'
  <script>
  alert(\'Reply successfully flagged!\');
  window.location.reload();  
  </script>
  ';
}
?>

<form method="post">
<input type="submit" name="submit">
</form>

注意:我需要 alertif 语句中 - 我不能只使用纯 Javascript(例如 onclick)!

【问题讨论】:

    标签: javascript php alert page-refresh window.location


    【解决方案1】:

    这里的问题是,当你重新加载时,它会触发POST参数被发送,即$_POST['submit'] 将被设置。最好设置一个SESSION 标志。

    <?php
    if(isset($_POST['submit'])) {
      echo'
      <script>
      alert(\'Reply successfully flagged!\');
      location.href = location.href;  
      </script>
      ';
    }
    ?>
    

    【讨论】:

    • 很好的解决方案。免责声明:not all browsers 将使用reload() 重新发布数据,但 OP 显然没有使用其中一种浏览器 :)
    • 不幸的是(不知道为什么)警告框仍然卡在循环出现。
    • @TheCodesee 看起来像一个缓存问题哥们?
    • @PraveenKumar 做到了.. 我们最终到达了那里!干杯:)
    • @PraveenKumar 我实际上能够使用我的原始代码(没有会话),只需将代码行更改为 location.href = location.href;
    【解决方案2】:

    改变

    window.location.reload(); 
    

    location.href = window.location.href;
    

    【讨论】:

    • 请注意,使用这种方法会丢失帖子数据,但在这种情况下可能没问题,因为它只是拍摄确认消息并重新加载,因此可能不再需要数据。此外,最好不要在帖子中插入重复的数据库记录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2013-11-13
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多