从 Smarty 中的数据库记录中获取 javascript var

Getting javascript var from database record in Smarty

我正在处理文件扩展名为“.tpl”的 PrestaShop 页面。我得到 javascript 代码来自动完成,如下所示:

var currencies = [
{ value: 'Afghan afghani', data: 'AFN' },
{ value: 'Albanian lek', data: 'ALL' },
{ value: 'Algerian dinar', data: 'DZD' },
{ value: 'European euro', data: 'EUR' },
{ value: 'Angolan kwanza', data: 'AOA' },
{ value: 'East Caribbean dollar', data: 'XCD' },
{ value: 'Vietnamese dong', data: 'VND' },
{ value: 'Yemeni rial', data: 'YER' },
{ value: 'Zambian kwacha', data: 'ZMK' },
{ value: 'Zimbabwean dollar', data: 'ZWD' },];

虽然我也已经有一个 foreach,如下例所示:

{foreach from=$currencies item=currency}
     {$currency.name}
     {$currency.code}
{/foreach}

如何用foreach输出currencies值?我试过这段代码:

var currencies = [
{foreach from=$currencies item=currency}
   { value: '{$currency.name}', data: '{$currency.code}' },
{/foreach},];

http://i.stack.imgur.com/DhYgL.jpg

var newArray = [];
for (var i=0; i < currencies.length; i++) {
   newArray.push({value: whatever, data: whateverVar})
}

我仍然不确定你想要什么,但这是我认为你想要的最好的。

你可以使用json_encode输出一个PHP数组到JavaScript

这是 TPL

中的 JavaScript 代码
var currencies = JSON.parse('{$currencies|json_encode}');

{$currencies|json_encode} 会输出这样的东西

[{ value: 'Afghan afghani', data: 'AFN' },
{ value: 'Albanian lek', data: 'ALL' },
{ value: 'Algerian dinar', data: 'DZD' }, ...] 

此输出将传递给 JavaScript 函数 JSON.parse,它将输出字符串转换为 JavaScript 对象