[英]PHP/HTML navigate to another page AND display output?
運行POST腳本后,我想導航回到調用它的頁面。 在腳本的結尾,我可以調用類似的代碼來導航:
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()
執行函數以重定向頁面。
從技術上講,這是不正確的。.無論頁面是否完成加載,只要JS執行,5秒計數器都會立即開始計數。
如果您希望在調用的同一頁面上顯示通知,而不是重定向到中間頁面,則應設置會話值:
$_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()
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.