[英]window.open if success in jQuery function
这段代码在我的footer.php文件中,我将其包含在页面中。 我想要的是如果数据等于传递的话,在我的检查地址jQuery中运行此代码。 我也尝试将此代码放在同一页中,但仍然无法正常工作。
<script src="//www.paypalobjects.com/api/checkout.js" async></script>
<script type="text/javascript">
window.paypalCheckoutReady = function () {
paypal.checkout.setup('<?php echo($merchantID); ?>', {
button: 'placeOrderBtn',
environment: '<?php echo($env); ?>',
condition: function () {
return document.getElementById('paypal_payment_option').checked === true;
}
});
};
</script>
这是我要插入paypalCheckoutReady函数if(data =='passed); 然后运行该功能并打开一个窗口。
<script>
function check_address(){
var data = {
'first_name' : jQuery('#first_name').val(),
'last_name' : jQuery('#last_name').val(),
'street' : jQuery('#street').val(),
'street2' : jQuery('#street2').val(),
'city' : jQuery('#city').val(),
'state' : jQuery('#state').val(),
'zip_code' : jQuery('#zip_code').val(),
'country' : jQuery('#country').val(),
'phone' : jQuery('#phone').val(),
'notetext' : jQuery('#notetext').val(),
};
jQuery.ajax({
url : '/proj/admin/parsers/check_address.php',
method : 'POST',
data : data,
success : function(data){
if(data != 'passed'){
jQuery('#payment-errors').html(data);
}
if(data == 'passed'){
jQuery('#payment-errors').html("");
/*I want to run the window.open code here*/
paypalCheckoutReady(); //I tried this but not working
}
},
error : function(){alert("Something Went Wrong");},
});
}
</script>
<?php
} else {
$resArray = CallShortcutExpressCheckout ($_POST, $returnURL, $cancelURL);
$ack = strtoupper($resArray["ACK"]);
if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING") //if SetExpressCheckout API call is successful
{
RedirectToPayPal ( $resArray["TOKEN"] );
}
else
{
//Display a user friendly Error on the page using any of the following error information returned by PayPal
$ErrorCode = urldecode($resArray["L_ERRORCODE0"]);
$ErrorShortMsg = urldecode($resArray["L_SHORTMESSAGE0"]);
$ErrorLongMsg = urldecode($resArray["L_LONGMESSAGE0"]);
$ErrorSeverityCode = urldecode($resArray["L_SEVERITYCODE0"]);
echo "SetExpressCheckout API call failed. ";
echo "Detailed Error Message: " . $ErrorLongMsg;
echo "Short Error Message: " . $ErrorShortMsg;
echo "Error Code: " . $ErrorCode;
echo "Error Severity Code: " . $ErrorSeverityCode;
}
}
?>
<?php include 'includes/footer.php'; ?>
希望你能帮助我解决这个问题。 谢谢
您可能有比赛条件。
尝试移动
<script src="//www.paypalobjects.com/api/checkout.js" async></script>
在您的脚本之后。
如果PayPal的.js文件在本地缓存,则它可能会在代码运行之前初始化,然后paypalCheckoutReady
不会调用paypalCheckoutReady
函数。
如您所愿,函数要运行? 然后在那调用它。
...
if (data == 'passed') {
jQuery('#payment-errors').html("")
paypalCheckoutReady(); // you don't need to type window.
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.