繁体   English   中英

window.open如果jQuery函数成功

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM