额...ajax这东西原理明白也写过一个简单的,但是在TP中应用就是不会,于是乎各种百度,奈何各路大佬都是写的云里来雾里去的,就没有一个正正经经的,我只想回调数据显示在模板中,于是乎自己琢磨了一下,终于弄出来了,分享一下,让新手同学们不要着急
废话不多说,直接上代码:
控制器
public function test(){
$model=M('xwgl');
$data = $model->field('id,title,jianjie,img_url,sort,content,time');
$count = $model->count();// 查询满足要求的总记录数
$Page = new \Think\Homepage($count,5);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$show = $Page->show();// 分页显示输出
$post = $model->limit($Page->firstRow.','.$Page->listRows)->order('sort DESC')->select();
$ajx = json_encode($post);//转换为json
$this->ajaxReturn($ajx);
}
前端显示代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- 优先使用 IE 最新版本和 Chrome -->
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
<script type="text/javascript" src="__PUBLIC__/Home/js/jquery.min.js" ></script>
<script type="text/javascript" src="__PUBLIC__/Home/js/swiper.min.js" ></script>
<script type="text/javascript" src="__PUBLIC__/Home/js/banner.js" ></script>
<link rel="stylesheet" href="__PUBLIC__/Home/css/swiper.min.css" />
<link rel="stylesheet" type="text/css" href="__PUBLIC__/Home/css/common.css"/>
<link rel="stylesheet" type="text/css" href="__PUBLIC__/Home/css/style.css"/>
</head>
<body>
//这个写法是jq的,可以自动识别的
<script type="text/javascript">
$.ajax({
url:"{:U('Xwgl/test')}",//这里指向的就不再是页面了,而是一个方法。
data:{},
type:"POST",
dataType:"JSON",//和控制器转换对应
success: function(data){
var data = JSON.parse( data );//回调,把json转换为数组格式
// alert(data);//这里要用索引,使用eq读取不出来数据。
var str="";
alert(data.length);
for(i=0;i<data.length;i++){
str+='<a><img src="__PUBLIC__/'+data[i].img_url+'" /></a>'
}
alert(str);
$(".hahsadsa").html(str);
}
})
</script>
<div class="newslist-wrap" style = "margin-top:30px">
<p class="newslist-tit">新闻资讯</p>
<div class="hahsadsa">
</div>
</div>
<div class="foot">
</div>
</body>
</html>