2011-03-10 30 views
0

我的表单操作将隐藏的输入发送到PayPal进行结帐。我还需要它在发送贝宝之前给我发送一封电子邮件。提交了两件事情

但由于我的表单的行为调用贝宝我不能触发其他功能。我在想我可以让自己的行动=自己做我需要在我的网页上,然后发送nessesery后变量到贝宝。我正在射击在它下面:

<? 
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> 

我应该使用卷曲的数据重新发送到PayPal一次我的网页上的邮件()函数是成功的?不知道这将如何工作?

+2

相反,你可以上使用的onClick()提交按钮,它调用发送电子邮件的方法,然后调用form.submit的动作; – 2011-03-10 21:56:30

回答

1

可能是这样

<? 
$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

谢谢我使用了上面的方法,它服务于我的目的。这些数据没有得到PayPal,但这与我认为的输入名称有关。谢谢。 – Denoteone 2011-03-11 04:07:08

0

为什么不只用javascript?一个onsubmit例程可以发送给发送给你一封电子邮件的CGI脚本,然后返回一个真正的值,以便正常的提交跟随到PayPal。


想想吧,您需要使用AJAX方法,以便您的浏览器保持在同一页面上。

+0

是的,但除了使用ajax请求的onsubmit,而不是发布的路径。 :) – 2011-03-10 22:06:27