2016-06-07 80 views
1

我有一個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> 

注:我需要的alert是在if聲明 - 我不能只用純JavaScript(如onclick)!

回答

2

這裏的問題是,當你犯了一個重載,它會觸發POST參數發送,即$_POST['submit']將設置。最好設置一個SESSION標誌。

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

很好的解決方案。免責聲明:[並非所有的瀏覽器](https://bugs.webkit.org/show_bug.cgi?id=23735)都會使用'reload()'重新發布數據,但OP顯然不使用其中的瀏覽器:) –

+0

不幸的是*(不知道爲什麼)*警報框仍然卡在一個出現的循環。 –

+0

@TheCodesee看起來像一個緩存問題的朋友? –

2

變化

window.location.reload(); 

location.href = window.location.href; 
+0

請注意,發佈數據將會以這種方式丟失,但這就是在這種情況下可能確定,因爲它只是拍攝確認信息並重新加載,所以數據可能不再需要。此外,它可能更好,以便不會在post上插入重複的db記錄。 –