2015-10-16 128 views
-1

這似乎是非常基本的,但我已經看過所有我能找到的(在線)建議 - 而且它們都不起作用 - 所以我想我不妨問Stack-Community。如何在表單提交後刷新.php頁面?

我只是想讓我的頁面在表單提交後刷新。

我第一次有PHP頁面上我的PHP會話頭:

if(isset($_GET['logout'])) { 
$_SESSION['username'] = ''; 
header('Location: ' . $_SERVER['PHP_SELF']); 
} 

if(isset($_POST['username'])) { 
    if($userinfo[$_POST['username']] == $_POST['password']) { 
    $_SESSION['username'] = $_POST['username']; 
}else { 
    echo "Wrong username or password."; 
} 
} 

然後我有一個表格開始代碼:

 <form action="" method="post" > 

我已經用行動「」,但這些內部的不同似乎沒有工作。

我還那麼有一個輸入型「」看起來像這樣:

 <input type="submit" name="submit_invoice" value="Submit" /> 

然而,沒有我在這個改變使頁面加載後提交表單。

以下是我在FORM或INPUT TYPE區域或在查詢更新數據庫中的mysql記錄之後嘗試過的一些事情。請注意:我可以更新數據庫中的數據,以便代碼正常工作。 。 。但似乎沒有任何工作。我一定在做一件錯事。

 header('Location: ' . $_SERVER['PHP_SELF']); 
    location.reload(); 

當我使用header()時,錯誤是頭已經被設置,所以不能再做一次。位置重新加載只是不重新加載。

任何幫助,非常感謝。

+0

如果你的表單中使用POST方法,並有一個提交按鈕(無任何JS),這已經是令人耳目一新,你不需要做任何事情。 –

+0

'location.reload'是javascript,而不是PHP。 https://developer.mozilla.org/en-US/docs/Web/API/Location/reload – chris85

+0

你有沒有阻止提交按鈕發起事件的JavaScript? –

回答

1

試試這個:

header('Location: ' . $_SERVER['PHP_SELF']); 
die('<META http-equiv="refresh" content="0;URL=' . $_SERVER['PHP_SELF'] . '">'); 
+0

這不會讓用戶陷入無限循環嗎?您每次都重定向到同一頁面。 – chris85

+0

我有一個具有DB值的表單,而且我正在更新表單。我正在尋找修改/更新的信息重新加載頁面。如果我在瀏覽器中刷新頁面,數據會更新。通過你的代碼,James,它確實將我發送給同一頁面,但不會將int「?id = value」語句的值發送給我。我也彈出一個錯誤,但頁面變化太快,我看不到它。 – kentrenholm

+0

是的。但是如果你不需要更新刷新,那可以鎖定。如果你想返回頁面,你可以發送一個輸入[type =「hidden」]頁面的url,並動態改變頁眉(「Location」) – James