在javascript中使用smarty生成一个多维数组的定义



对不起,但我不是JS大师,虽然我完全不知道这个。如何在javascript输出中使用smarty生成多维数组

var kreator_elements = new Array();
{foreach $kreator_elements as $element}
if(!kreator_elements[{$element->id_atrib}] instanceof Array)
    var kreator_elements[{$element->id_atrib}] = new Array();
kreator_elements[{$element->id_atrib}][{$element->id}] = new Array();
kreator_elements[{$element->id_atrib}][{$element->id}]['u_img'] = '{$element->getImageLink()}';
kreator_elements[{$element->id_atrib}][{$element->id}]['u_ico'] = '{$element->getIconLink()}';
{/foreach}

尝试了几种方法,使用[]等。他们现在都不适合我。总是在控制台得到一些错误

尝试在纯PHP中构建关联数组,而不是使用Smarty:

$tmp = array();
foreach ($kreator_elements as $element) {
    $tmp[$element->id_atrib][$element->id] = array(
        'u_img' => $element->getImageLink(),
        'u_ico' => $element->getIconLink()
    );
}
$kreator_elements_json = json_encode($tmp);

确保所有字符串都是UTF-8编码,否则json_encode将失败。如果不是,对每个非unicode字符串运行iconv()。

结果可以被回显,因为它是正确的javascript对象,不需要smarty。

在用一种语言构建另一种语言时,总是尽量使用尽可能少的语言。如果必须这样做,请记住转义每个字符串,因为只有一个'符号或换行符可能会在生成的代码中导致语法错误。

相关内容

  • 没有找到相关文章

最新更新