PHP7中文手册2018 带注释 最新chm版
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>
转载请注明:谷谷点程序 » Yii+ajax+json练习