日期:2014-05-17  浏览次数:20388 次

js获取php(ecshop smarty模板)数组元素值
最近修改PHP东西(ecshop),遇到一个问题,诚恳求助各位高手:
1.在php页面里利用smarty模板赋值,部分代码如下:
 
    while ($row = $db->FetchRow($res))
    {
     if($cur==null)
     $cur=$row['template_id'];
     $modelrow[$row['template_id']]=$row['template_id'];
     $modelcontent[$row['template_id']]=trim($row['template_content']);     
     $modelplates[$row['template_id']]=$row['template_subject']." -$row[content_category]-".$row['template_subject_second'];
 //  echo         $modelcontent[$row['template_id']];
   
    }
$smarty->assign('cur', $cur);
$smarty->assign('modelrow', $modelrow);
$smarty->assign('modelplates', $modelplates);
$smarty->assign('modelcontent',$modelcontent);
/*end*/

$modelcontent 数组传递到前台的dwt模板中 在js函数中:
1、显示获取一个变量值temp=$("#temp").val(); (这个变量值为1、2、3之类的,获取没有问题。)
2、var a='{$modelcontent.temp}';第二步利用变量获取$modelcontent的一个元素值,但是为空,不知道怎么样才能获取到;我在测试的时候var a='{$modelcontent.1}'获取数组下标为1的还是能够获取到。
现在问题是怎么根据已知变量获取到数组对应下标值?还是有其他解决的办法,谢谢各位!
ecshop smarty php

------解决方案--------------------
换成
var a='<?php echo{$modelcontent.temp}?>';
alert(a);看看结果
------解决方案--------------------
var a='{$modelcontent.'+temp+'}';
alert(a);
这样再试一下
------解决方案--------------------
http://www.zui88.com/blog/view-261.html
看看对你是否能有帮助

引用
Smarty模版中,数组的键名是一个变量的值,如何显示该键名对应的值
in: 后端程序
题目有点绕口,大概的意思是

php已经赋给模版一个数组,数组的信息如下:

$config= array(

1=>'中山',

2=>'石岐'

);

数据库存储地区的字段记录的是该数组的键名,如1,现在要在模版上显示:中山。

如果这样写会报错:

{{$config.$row.region}}

模版上的正确的写法是:{{$config[$row.region]}}

今天遇到的问题还更复杂一点,数据库字段存储的是一些配置的序列化,所以在调取地区信息时还需要进行反序列化处理,中间必须有一个赋值的过程:

{{assign var=param value=$l.params
------解决方案--------------------
unserialize}}

然后$param.region就可以取得1这个值了



------解决方案--------------------
{lection}的时候不是有KEY么???

要么传质的时候多传一列储存KEY
------解决方案--------------------
smarty的循环会用吗? 我说的是循环数组。不是有个key列么。你便利数组的时候直接用 
刚上面写错了 
{section name=loop loop=$v}
{$v[loop].数组键值}
{/section}

你把key打印出来  看是不是key是其他的数字导致按KEY取不到正确的数值