我正在尝试访问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”:“字段的值与预期格式不符。
答案 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”没有用于将参数传递到函数中的右括号。