2013-12-03 4 views
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(); 
} 

Там есть также форма в модальных (я 'm using bootstrap modal фактически). Думаю, код для этого не нужен.

Затем код кнопки:

<button type="submit" value="submit" name="NewContact" id="NewContact" class="btn btn-primary">Add</button> 

Я хотел бы, чтобы убедиться, что после нажатия кнопки Add была нажата, и полная проверка данных установлена ​​истина и т.д., то он будет перезагрузить страницу с список контактов и показать контакт, который был добавлен (у меня есть цикл, который берет их из базы данных).

Как это сделать?

+2

Вам необходимо использовать POST-redirect-GET. Обновление после этого будет обновлять GET, что не вызывает никаких запросов. –

ответ

0

«однако как только я нажимаю кнопку». если это jquery modal, я предполагаю, что это кнопка «Complete» в модальном режиме.

в Полной функции модальных вы можете сделать:

  "Complete": function() 
      { 
        window.location.replace('index.php'); 
      } 

заменяющий index.php с любой страницы, которую вы хотите.

Смежные вопросы