0
我有一個模式彈出窗口,其中我已經放入了允許爲特定帳戶創建新聯繫人的窗體。該模式工作正常,表單工作很好,但是一旦我點擊該按鈕,它就會返回到創建新聯繫人之前已經顯示在聯繫人列表中的內容。我明顯地使用F5來刷新頁面,然後問起我是否確定要重新加載表單。點擊是,它顯示已添加的聯繫人,但在後臺添加了另一個具有相同詳細信息的聯繫人。刷新頁面重新加載POST動作
如何避免這種情況?我是否必須清除POST或者將頁面功能重新加載到按鈕或我用來創建聯繫人的功能?
這是我運行代碼的一部分:
Class Client
{
var $_newcontact;
...
public function AddContact()
{
switch($this->_newcontact)
{
case "BackEnd" :
$this->GetData_NewContact();
if($this->ValidateNewContact()==true)
{
if($this->AddNewContact($_GET['ClientID'])==true)
{
echo "New contact has been added";
}
else
{
echo "Contact hasn't been created";
}
}
}
}
}
在new_contact頁我用的是代碼:
$Client= new Client();
if($_POST['NewContact']) {
$Client->_newcontact = "BackEnd";
$Client->AddContact();
}
還有有一個在模態窗體(我實際上使用bootstrap模式)。我猜這是不需要的代碼。
然後按鈕代碼:
<button type="submit" value="submit" name="NewContact" id="NewContact" class="btn btn-primary">Add</button>
我想,以確保一旦添加按鈕被點擊,和數據的全面驗證設置爲true等等,那麼它會重新與該頁面聯繫人列表並顯示已添加的聯繫人(我有一個從數據庫中取得的循環)。
我該如何做到這一點?
您需要使用POST-redirect-GET。刷新後將刷新GET,這不會導致提示。 –