У меня есть модальное всплывающее окно, в которое я поместил форму, которая позволит создать новое контактное лицо для определенной учетной записи. Модальная работа прекрасна, форма отлично работает, однако, как только я нажимаю кнопку, она возвращается к тому, что было показано в списке контактов до создания нового контакта. Я, очевидно, добавил 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();
}
Там есть также форма в модальных (я 'm using bootstrap modal фактически). Думаю, код для этого не нужен.
Затем код кнопки:
<button type="submit" value="submit" name="NewContact" id="NewContact" class="btn btn-primary">Add</button>
Я хотел бы, чтобы убедиться, что после нажатия кнопки Add была нажата, и полная проверка данных установлена истина и т.д., то он будет перезагрузить страницу с список контактов и показать контакт, который был добавлен (у меня есть цикл, который берет их из базы данных).
Как это сделать?
Вам необходимо использовать POST-redirect-GET. Обновление после этого будет обновлять GET, что не вызывает никаких запросов. –