登录 ×

梨花寨前端技术交流平台!

html,css,js,html5,css3等

js或jquery使用smarty的数组变量(json)

2014-06-22 09:27:00 | 浏览量:728 smarty

    当后端把数据以json的格式送到smarty中,如果我们需要用js来先处理这些数据再现实,就涉及到js或jquery使用smarty的数组变量问题了。

PHP中list是一个多维数组.定义如下:

Array( [0] => Array (
         [id] => 1 
         [seq] => 1 
         [type] => type1 
         [title] => 111 
         [file_path] => 20120216_dtWEbSFbNiTaOSdG.jpg )

      [1] => Array ( 
         [id] => 1 
         [seq] => 2 
         [type] => type2 
         [title] => 222 
         [image_path] => 20120216_z3ZEwihzAQ7W1tbc.jpg ))

$this->assignVars('lists', json_encode($list)); //方法1
或者
$this->assignVars('lists', $list);// 方法2


在前台javascript 或者jquery的代码则如下:


<script type="text/javascript">
var images = '{{$lists|smarty:nodefaults}}';//方法1 alert();

var images = '{{$lists|@json_encode}}'; //方法2

//alert(images); //方法1和方法2的结果是一样的都是Json格式.

var jsonList=eval("("+images+")");
 $(document).ready(function(){
    var imagesLen = jsonList.length;
    var selectId = 0; //初始化是默认图片1号
    var nextImage='';//
      $('#img_next_btn').click(function(){
            if(selectId <imagesLen){
               oldSelectId = selectId;
               selectId= selectId -1;
               for(var key in jsonList[selectId]){
                 if(key=="file_path"){ 
                    nextImage = jsonList[selectId]["file_path"]; 
                  }
                 if(key=="image_path"){
                      nextImage = jsonList[selectId]["image_path"];
	          } }
                $('#main_img').attr('src', nextImage);
  }});
}); 
</script>
html的部分

<div>
 <img alt="image" id="main_img" src=""  width="100%"/>
</div>

<div><img alt="next" id="img_next_btn"  src="bt_next_img.jpg" border="0" /></div>



需求及问题提交:

点击图片更换数字

0.5068s