您的位置:首页 > 编程语言 > PHP开发

列表页点击加载更多,无刷新加载更多文章的方法(yii)

2015-07-19 00:00 597 查看
先说下看到这个问题后的思路,首先有个更多按钮,当点击更多按钮时候,触发一个js事件,js通过ajax向controller传值,并返回相关json数据,循环json数据,加到页面相关位置。

<a href="javascript:;" class="get_more">更多</a>

$('.get_more').click(function(){

//取得现在页面上的文章数

var articlecount = $('.xxx').length;

$.ajax({

type:"POST",
dataType:"json",//dataType (xml html script json jsonp text)
data:{"articlecount":articlecount},//json 数据
url:"xxxxx",//地址
success:function(json) {//成功获得的也是json对象
var house='';
for(var i=0; i<json.length; i++)
{
//alert(json[i].content)
house += json[i].title;

}
$(".get_more").before(house);
}

})

})

//controller里面则是判断是否ajax提交,然后接受articlecount的,进行相关操作,并返回json

public function actionIndex()
{
if(Yii::app()->request->isAjaxRequest){//是否ajax请求
$articlecount = Yii::app()->request->getParam('articlecount');//getparam 会获得 get post 变量 ,原来也可以接收json处理后的变量
$criteria = new CDbCriteria;
$criteria->limit =1; //取1条数据,如果小于0,则不作处理
$criteria->offset =$articlecount; //两条合并起来,则表示 limit 10 offset1,或者代表了。limit 1,10
$dataarticle = Article::model()->findAll($criteria);
/*
* 如果简介那里,是想截取文章内容,则把下面注释去掉
*/
// for($i=0;$i<count($dataarticle);$i++){
// $content[$i]=$dataarticle[$i]->articledata['content'];
// }
// $dataartic
3ff8
le = json_decode(CJSON::encode($dataarticle)); //Yii 的方法将数组处理成json数据
// for($j=0;$j<count($content);$j++){
// $dataarticle[$j]->content=$content[$j];
// }
echo CJSON::encode($dataarticle);
exit;
}

$dataarticle = Article::model()->with('articledata')->findAll(array('limit'=>1));

$this->render('index',array(
'dataarticle'=>$dataarticle,
));
}

版权声明:本文为博主原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: