2013-12-03 1 views
0

특정 계정에 대한 새로운 담당자를 만들 수있는 양식을 입력 한 모달 팝업이 있습니다. 모달은 잘 작동하지만 양식은 훌륭하게 작동합니다. 버튼을 클릭하면 새 연락처가 만들어지기 전에 연락처 목록에 표시된 항목으로 돌아갑니다. 분명히 페이지를 새로 고치기 위해 F5를 눌렀습니다. 폼을 다시로드하고 싶은지 묻는 상자가 나타납니다. 예를 클릭하면 추가 된 연락처가 나에게 표시되지만 백그라운드에서 다른 연락처와 동일한 세부 정보가 추가되었습니다.페이지를 새로 고침하면 POST 동작이 다시로드됩니다.

어떻게 피할 수 있습니까? POST를 지우거나 연락처를 만들기 위해 사용하는 버튼이나 기능에 페이지 기능을 다시로드해야합니까? 거기 모달에서 양식 (내가 거기에 또한

$Client= new Client(); 
if($_POST['NewContact']) { 
    $Client->_newcontact = "BackEnd"; 
    $Client->AddContact(); 
} 

: 나는 코드를 사용 new_contact 페이지에서

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"; 
       } 
      } 
    } 
} 
} 

:

는 내가 실행 해요 코드의 일부입니다 실제로 부트 스트랩 모달을 사용하고 있습니다.) 나는이 코드가 필요 없다고 생각한다.

다음 버튼 코드 : 내가 추가 버튼을 클릭하고 나면, 데이터의 전체 유효성 검사 등 true로 설정되어 있는지 확인하고 싶은

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

, 그때가있는 페이지를 다시로드합니다 연락처 목록 및 추가 된 연락처를 표시합니다 (데이터베이스에서 가져 오는 루프가 있습니다).

어떻게하면됩니까?

+2

POST-redirect-GET을 사용해야합니다. 그 후 새로 고침하면 GET이 새로 고침되어 프롬프트가 표시되지 않습니다. –

답변

0

"그러나 한 번 버튼을 클릭하십시오." 이것이 jquery 모달이라면 모달의 "Complete"버튼이라고 가정합니다.

모달의 전체 기능에 당신이 할 수 있습니다 : 당신이 원하는 페이지로

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

교체의 index.php를.

관련 문제