如何在JavaScript对象数组中访问PHP变量

时间:2019-04-17 07:59:56

标签: javascript php arrays variables paypal

我正在尝试访问JavaScript函数中的PHP变量,我正在使用PayPal create button API,并试图将存储在PHP变量中的金额发送到对象数组JavaScript函数中。

问题是我尝试了不同的方法来访问JavaScript中的PHP变量,但没有一种起作用。

这是代码的一部分:

PHP部分:

    <?php
          //I tested this amount is working fine
          $myamount = $order['amount'];
          $dec = '.00';
          $AMT = $myamount . ' ' . $dec; 

    ?>

JS部分:

 paypal.Buttons(
    {

         createOrder: function(data, actions) {
         // Set up the transaction

         return actions.order.create({
           purchase_units: [{
             amount: {

                   value: amt
             }
           }]
         });
       }
     }

 ).render('#paypal-button-container');

在浏览器控制台上,我得到此“ INVALID PARAMETER SYNTAX”,“ description”:“字段的值与预期格式不符。

4 个答案:

答案 0 :(得分:1)

更新的代码,现在在一个块中。我确实在您的PHP代码中发现一个错误,该错误会导致错误,这就是您在金额和“ .00”之间所留的空间。这将导致JS变量无法正常工作,因为您将存储值,例如“ 123 .00”而不是“ 123.00”。

PHP代码

$AMT = $order['amount'].'.00'; 

JavaScript代码:

paypal.Buttons() <-- The closing bracket was missing.
{
    createOrder: function(data, actions) {

        // Set up the transaction
        return actions.order.create({
            purchase_units: [{
                amount: {
                    value: '<?=$AMT;?>' // Short code for the print or echo function.
                }
            }]
        });
    }
}.render('#paypal-button-container');

答案 1 :(得分:0)

尝试在隐藏字段中存储值并访问

<input type="hidden" id="xyz" value="<? echo $AMT ?>" />



 createOrder: function(data, actions) {
  // Set up the transaction
   var amt = document.getElementById('xyz').value;
   return actions.order.create({
           purchase_units: [{
             amount: {

                   value: amt
             }
           }]
         });
       }
     }

答案 2 :(得分:0)

我首先要猜测PHP代码和JS代码包含在同一个PHP文件中,如果没有,那么它将永远无法工作,除非不使用会话变量或类似的东西。

如果它们在同一文件中,则需要进入包含JS函数的网页的源代码,以查看$ AMT替换中已放置了什么值。

如果您将其内容放入OP中,人们应该能够更好地帮助您。

答案 3 :(得分:0)

我已经重构了您的代码并发现了一个问题:

paypal.Buttons() <-- The closing bracket was missing.
{
    createOrder: function(data, actions) {

        // Set up the transaction
        return actions.order.create({
            purchase_units: [{
                amount: {
                    value: '<?=$AMT;?>' //unable to retrieve value
                }
            }]
        });
    }
}.render('#paypal-button-container');

在您的原始代码中,函数“ paypal.Buttons”没有用于将参数传递到函数中的右括号。