我有一个PayPal按钮,它将表单提交到表单action=""
属性中指定的url。我希望这个按钮做的是在提交表单的同时(或大致相同)触发ajax调用。
所以表格看起来像这样:
<?php echo('
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" id="payWithPayPalForm">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="me@mydomain.com">
<input type="hidden" name="amount" value="'.$price.'">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest" >
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" id="payWithPayPalButton" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/pl_PL/i/scr/pixel.gif" width="1" height="1">
</form>
');
?>
ajax请求如下:
$.ajax({
type: "POST",
url: "classes/acceptOfferFunction.php",
data: {
hash: getURLParameter('hash'),
hash2: getURLParameter('hash2')
},
success: function (result) {
}
});
答案 0 :(得分:2)
这里的问题是,您的ajax请求将被取消,因为页面将重新加载(实际上已重定向到paypal)。
您可以做的是,在提交表单并等待直到ajax请求完成时发送ajax请求。然后,发送表格。
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" onsubmit="return ajaxRequest()" method="post" id="payWithPayPalForm">
使用onsubmit
,当用户发送表单时,将触发函数ajaxRequest
。由于我们之前放了一个返回,表单将等待函数的返回继续。
ajaxRequest()
返回true,则表单将被提交。这是POC。你有更好的方法以非阻碍的方式处理它(例如在表单id上使用jQuery)。而且你也必须编写这个函数。