運行POST腳本後,我想回到調用它的頁面。在腳本結束時,我可以叫這樣的導航回:PHP/HTML導航到另一頁並顯示輸出?
header("Location: /url/to/the/other/page");
但使用的限制是,我不能輸出給用戶呼叫前「成功插入數據到數據庫」。回到原始頁面後,如何顯示該通知?
運行POST腳本後,我想回到調用它的頁面。在腳本結束時,我可以叫這樣的導航回:PHP/HTML導航到另一頁並顯示輸出?
header("Location: /url/to/the/other/page");
但使用的限制是,我不能輸出給用戶呼叫前「成功插入數據到數據庫」。回到原始頁面後,如何顯示該通知?
嚴格地說,你不能從一個頁面重定向,頁眉也顯示輸出。您可以將輸出發送到瀏覽器,也可以發送重定向標題,但不能同時發送。
如果要顯示某些內容,請等待幾秒鐘,然後發送重定向,則需要在JavaScript中使用客戶端重定向。事情是這樣的:
<html>
<head>
<script type="text/javascript">
setTimeout(function() {
location.href='/newpage.html',
}, 5000);
</script>
<body>
successfully inserted data to database.
</body>
</html>
這將呈現什麼在<body>
,等待5秒鐘,然後在setTimeout()
被重定向頁面執行的功能。
從技術上講,事實並非如此.5秒計數器在JS執行後立即開始,無論頁面是否完成加載。
如果你想顯示你的,而不是重定向到一箇中介頁面調用在同一頁上的通知,那麼你應該設置會話值:頁面上
$_SESSION['note'] = 'data_saved';
然後在那裏你要顯示的通知:
if (isset($_SESSION['note']) && $_SESSION['note'] == 'data_saved') {
echo "successfully inserted data to database.\n";
unset($_SESSION['note']);
}
這就要求你在引用$_SESSION
任何頁面的頂部運行session_start()
;
以上使用$ _SESSION的示例對我來說非常合適。 – nhershy
你可以使用javascript來POST到處理db的腳本嗎? – StaticBeagle
您可以傳遞一個參數 –
在重定向之前在'$ SESSION'中設置一個變量。然後在新位置訪問 –