2017-10-13 28 views
0

運行POST腳本後,我想回到調用它的頁面。在腳本結束時,我可以叫這樣的導航回:PHP/HTML導航到另一頁並顯示輸出?

header("Location: /url/to/the/other/page"); 

但使用的限制是,我不能輸出給用戶呼叫前「成功插入數據到數據庫」。回到原始頁面後,如何顯示該通知?

+0

你可以使用javascript來POST到處理db的腳本嗎? – StaticBeagle

+0

您可以傳遞一個參數 –

+0

在重定向之前在'$ SESSION'中設置一個變量。然後在新位置訪問 –

回答

1

嚴格地說,你不能從一個頁面重定向,頁眉也顯示輸出。您可以將輸出發送到瀏覽器,也可以發送重定向標題,但不能同時發送。

如果要顯示某些內容,請等待幾秒鐘,然後發送重定向,則需要在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();

+0

以上使用$ _SESSION的示例對我來說非常合適。 – nhershy

相關問題