Yii+ajax+json练习

ajax + json 简直是完美搭档。  

好累,不想说了,看了好多ajax和json的博客,然后再yii下做了一个练习,感觉还是学到了点啥的。 

视图文件中的js代码:
<?php  Yii::app()->clientScript->registerCoreScript('jquery');  ?>
<script>
	$(function(){
		update();
	});
	count = 0;
	function update(){
		count++;
		$.ajax({
			url:"<?php echo $this->createUrl('update');?>",
			data:{"num":count},
			dataType:"json",
			cache:false,	
			success:function(data){
				var list=$("#list");
				var out = '';
				//alert(data[0].title);
				//遍历Json数据
				$.each(data,function(i){
					out+='<li><a href=./index.php?r=article/view&id='+data[i].aid+'>'+data[i].title+'</a></li>';
				});
				list.empty().html(out);
			}
		});
		if(count>6){
			count = 0;
		}	
	}
	setInterval(function(){
					update()
				}, 2000);
</script>
<div>
	<ul id="list">		
	</ul>
</div>
控制器里面对Ajax的处理:
	public function actionUpdate(){
		if(Yii::app()->request->isAjaxRequest){
			$count = (int)Yii::app()->request->getParam('num');
			$c = new CDbCriteria;
			$c->select = 'aid,title';
			$c->limit = $count;
			$c->order = "create_time DESC";
			$data = Article::model()->findAll($c);
			echo CJSON::encode($data);
		}
	}
关于返回的json数据的遍历,在网上差了一些资料,得到一个比较实在的遍历json数据例子,如下:

<script>
var a ={
    "sys_bb": [
        {
            "menu_name": "报   表1",
            "menus": [
                {
                    "menu_name": "库存"
                },
                {
                    "menu_name": "销售"
                }
            ]
        },
        {
            "menu_name": "报   表2",
            "menus": [
                {
                    "menu_name": "盘点"
                },
                {
                    "menu_name": "查库"
                },
                {
                    "menu_name": "查销售"
                }
            ]
        }
    ],
    "sys_cw": [
        {
            "menu_name": "财    务",
            "menus": [
                {
                    "menu_name": "收款统计"
                }
            ]
        }
    ]
};

 $(function(){
      
    $.each(a.sys_bb,function(i,n){
       
       $("#navigation").append(a.sys_bb[i].menu_name+"<br>");
        $.each(a.sys_bb[i].menus,function(i,n){
        
          $("#navigation").append("  "+n.menu_name+"<br>");
        });
        
    });
    
      $.each(a.sys_cw,function(i,n){
       
       $("#navigation").append(a.sys_cw[i].menu_name+"<br>");
        $.each(a.sys_cw[i].menus,function(i,n){
        
          $("#navigation").append("  "+n.menu_name+"<br>")
        });
        
    });
 });
</script>
<div id="navigation">
</div>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值