2012-11-02 3 views
0

나는 PHP 스크립트를 가지고 특정 문제에 대한 해결책을 찾고 있었는데, 나는 재사용을 시도하고있다. 리디렉션이 아닌 팝업을 통해 양식 제출을 확인하는 방법은 무엇입니까?

<?php $name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$formcontent = "$name \nMessage: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 
mail($recipient, $subject, $formcontent, $mailheader) or die ("Error!"); 
echo "Thank You!" . " -" . " <a href = '../index.html' style = 'text-decoration:none;color:#ff0099;'>Return Home</a>"; 
?> 

대신 다시 지시 다른 페이지로는, 난 그냥 모달 팝업 대신을 통해 확인을 개시 깨끗한 방법을 이해하고 싶어 해요

.

저는 외부 파일로 스크립트를 실행 중이므로 절반의 답변이 이미 있지만 나머지 작업을 수행하는 jQuery 플러그인을 호출하는 측면에서 포인터 또는 두 개를 사용할 수 있습니다!

답변

0

또는 당신은 ----- 확인을 취소/확인을 위해

--- jQuery를 아약스를 요청합니다

onSubmit="javascript: return confirm('Are you sure you want to submit this?');" 

태그의 onsubmit 속성이 사용할 수

function doSubmit(){ 
    var postData = jQuery('#your-form-id').serialize();  

    jQuery.ajax({ 
    url: 'form-action.php', 
    data: postData 
    }).done(function(html) { 
    alert(html); 
    }); 
} 

- 양식 태그에 ---

<form id="your-form-id" onsubmit="javascript: doSubmit();" ... 
+0

.... 또는 게시 된 양식의 확인을 의미 했습니까? –

+0

맞습니다. 제출 성공 확인 : – user1691585

+0

k -jQuery 또는 Prototype 또는 vanilla JS? 당신은 리다이렉트없이 이것을하기 위해 비동기 호출을 사용할 필요가있다 - 당신이 예제를 원하는 어떤 프레임 워크인지 알려 주면 간단한 예제를 코드화 할 것이다 :) –

1

새로 고침하거나 새 페이지로 리디렉션하지 않으려면 AJAX를 통해 게시해야합니다.

AJAX 호출의 "성공"메소드에서 대화 상자가 트리거됩니다.

+0

디오 디오스 덕분에, 이것에 대해 살펴보고 내가 무엇을 찾을 수 있는지 알아 보겠습니다. – user1691585

0

Diodeus는 HTTP 요청을 사용하여 PHP 파일을 호출해야한다고 제안합니다. 요청을 통해 얻은 결과로 팝업을 만들거나 사용자에게 알리고 싶은 내용을 만들 수 있습니다. Here 그 방법에 대한 기본 정보를 찾을 수 있습니다.

+0

감사의 말 Tim,이 오래된 좋은 w3schools, 꽤 유용한 링크. – user1691585

+0

w3schools를 언급하지 마십시오. http://w3fools.com/ – hrwath

+0

@hrwath 흥미로운 사이트를 게시합니다. 그걸 몰랐는데 ... –

1
  • 모든 HTML 입력을 양식 요소로 묶습니다.
  • 메일 보내기 링크를 클릭하면 ajax 이벤트를 첨부하여 ajax POST 요청을 PHP 메일에 전송합니다 (질문에 표시된 ).
  • 그런 다음 성공한 사용자에게 성공 메시지를 표시 할 수 있습니다.
  • 최소한의 코드이 구현을 위해, 나는 코드 같은 일부 구현은 아래 당신에게
  • 도움이 될 수
  • (CSS 및 모달 윈도우 용)과 트위터 부트 스트랩 (아약스 형태의 포스트를 들어) JQuery와의 조합을 사용하도록 제안

$ ('# divId는')을 클릭 (함수() {

//start the ajax 
$.ajax({ 
    //this is the php file that processes the data and send mail 
    url: "send_mail.php", 

    //POST method is used 
    type: "POST", 
    // here we are serializing all form values (its is not php serialize) 
    data: $("#Form").serialize(), 
    //Do not cache the page 
    cache: false, 

    //success 
    success: function (html) {    
     if (html=='1') {  
      $('#divModal').modal('show') ; 

     }    
    }  
}); 

//cancel the submit button default behaviours 
return false; 

}).;

관련 문제