2011-03-10 4 views
0

내 양식 작업이 체크 아웃을 위해 PayPal에 숨겨진 입력을 보냅니다. 페이팔에 가기 전에 이메일을 보내야합니다.on submit 두 가지 일이 발생합니다

하지만 내 양식의 작업이 페이팔을 호출하기 때문에 다른 기능을 실행할 수 없습니다. 나는 내가 행동 = 자기를 가질 수 있고 내 페이지에서 필요한 것을하고 나서 네팔 포스트 변수를 페이팔에 보낼 수 있다고 생각하고 있었다.

<? 
if(isset($_POST['submit'])){ 
//get post data for me clean up and save then send 

if(!mail(data, myemail, headers)){ 
//send data to paypal. 
curl(https://www.paypal.com/cgi-bin/webscr); 
} 

}else{ 
?> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<!-- DATA FOR ME--> 

<p>Child's Name: <? echo $child_name; ?></p> 
    <input type="hidden" name="child_name" value="<? echo $child_name; ?>"> 

<p>Birth Date: <? echo $birth_date; ?></p> 
    <input type="hidden" name="birth_date" value="<? echo $birth_date; ?>"> 

<p>Parent/Guardian Name: <? echo $name; ?></p> 
    <input type="hidden" name="name" value="<? echo $name; ?>"> 

<p>Email Address: <? echo $email; ?></p> 
    <input type="hidden" name="email" value="<? echo $email; ?>"> 

<p>Home Phone: <? echo $phone; ?></p> 
    <input type="hidden" name="phone" value="<? echo $phone; ?>"> 



<!-- DATA FOR PAYPAL--> 
<input type="hidden" name="business" value="[email protected]"> 
<input type="hidden" name="item_name" value="Item Name"> 
<input type="hidden" name="currency_code" value="USD"> 
<input type="hidden" name="amount" value="<?php echo $total; ?>"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="XXXXXXXXXX"> 
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
</form> 

이 내 페이지에서 메일() 함수가 성공적으로 완료되면 페이팔에 데이터를 다시 보내 컬 사용해야 : 나는 아래에에서 총을 복용 무엇입니까? 그게 어떻게 작동 될지 모르십니까?

+2

등이있다; –

답변

1

대신 당신이 form.submit 호출 한 후 이메일을 보낼 수있는 방법을 호출하고 제출 버튼에 온 클릭()를 사용할 수있는 행동이

<? 
$url = ""; 

if(isset($_POST['submit'])){ 
//get post data for me clean up and save then send 

    if(!mail(data, myemail, headers)){ 
     $url = "https://www.paypal.com/cgi-bin/webscr"; 
    } 

}else{ 
?> 
<form action="<? echo $url; ?>" method="post"> 

<!-- Same form as in the original post --> 

</form> 

<? 
if ($url != "") { 
?> 
<script language="javascript"> 
document.forms[0].submit(); 
</script> 
<? 
} 
?> 
+0

감사합니다. 나는 위의 방법을 사용했고 그것은 내 목적에 부합합니다. 데이터가 페이팔에 도착하지 않고 있지만 그것은 내가 생각하는 입력의 이름과 관련이 있습니다. 감사. – Denoteone

0

왜 자바 스크립트가 아닌가요? onsubmit 루틴은 이메일을 보내는 CGI 스크립트에 POST 한 다음 실제 값을 반환하여 정상 제출이 PayPal로 이어지는 지 확인할 수 있습니다.


생각해 보니 AJAX 방법론을 사용해야 브라우저가 같은 페이지에 머무를 수 있습니다.

+0

예,하지만 갈 길은 게시물보다는 ajax 요청을 사용하여 onsubmit과 별개입니다. :) –

1
<input type='hidden' name='notify_url' value='http://yoursite.com/post.php?action=ipn' /> 
<input type='hidden' name='cancel_return' value='http://yoursite.com/post.php?action=cancel' /> 
<input type='hidden' name='return' value='http://yoursite.com/post.php?action=return' /> 

더 나은

  • 같은 클래스를 사용하는3210