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

时间:2015-06-04 15:39:13

标签: javascript jquery smarty prestashop

我正在使用文件扩展名为“.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}

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

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

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

2 个答案:

答案 0 :(得分:0)

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

我仍然不确定你想要什么,但这是我能从你想要的东西给出的最好的。

答案 1 :(得分:0)

您可以使用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对象