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

问题描述 投票:-3回答:4

我试图在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');

在浏览器控制台上,我得到这个“无效参数语法”,“描述”:“字段的值不符合预期的格式。

javascript php arrays variables paypal
4个回答
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');

0
投票

我首先要猜测PHP代码和JS代码包含在同一个PHP文件中,如果没有,那么它永远不会工作,不是没有使用会话变量或者这样。

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

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


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
             }
           }]
         });
       }
     }

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”没有一个闭括号,用于将参数传递给函数。

© www.soinside.com 2019 - 2024. All rights reserved.