本文实例分析了thinkphp商城公告功能开发问题。分享给大家供大家参考,具体如下:
效果如下
1.定在头部
1
2
3
4
|
position: fixed;
z-index: 999;
top: 0;
opacity:1;
|
2.ajax处理json数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// 获取商城公告
function getnotice() { // 获取公告函数
var res;
$.ajax({
type: "post" ,
url: "{sh::u('store/mall/ajaxgetnotice',array('mid'=>$mid))}" ,
datatype: 'json' , // 设为json之后,就能够很好的处理获取的json数据,json.status
async: false,
success: function (json){
res = json;
}
});
return res;
}
|
设置datatype:'json'之后,json数据就直接可以通过json.的方式处理了。
3.最后加载,页面更好看。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$(document).ready( function (e) { // 主函数
// 获取公告
var action_name = "{sh::action_name}" ; // 页面使用thinkphp常量
var json = getnotice();
if ( action_name == 'index' && json.status == 1) { // 首页并且公告存在
$( ".top" ).css( "margin-top" , "70px" ); // jquery设置css
$( ".main-sidebar" ).css( "top" , "70px" );
var html = '' ;
$.each(json.info, function (i, n){ // n为文本内容
html += "<li><strong>" +n.content+ "</strong></li>"
});
$( ".top-notice" ).show();
$( '#notice ul' ).html( "" +html);
$( '#notice' ).unslider(); // 轮播
}
});
|
4.获取sql语句的thinkphp处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
// 获取公告
function ajaxgetnotice() {
if (is_ajax) {
$this ->mid;
// 获取有效的,且结束时间大于当前时间的,或者日期等于0的公告
$mallnoticemodel = m( 'mall_notice' );
$where [ 'mall_id' ] = $this ->mid;
$where [ 'status' ] = 1;
$where [ 'endtime' ] = array ( array ( 'eq' ,0), array ( 'gt' ,time()), 'or' ) ;
//select * from sh_mall_notice where mall_id = 9 and status = 1 and (endtime = 0 or endtime>1458354366);
$notice = $mallnoticemodel ->where( $where )->order( 'sort desc' )->select();
if (! empty ( $notice )) {
$this ->ajaxreturn( array ( 'status' => '1' , 'info' => $notice , 'msg' => "获取成功" ), 'json' );
} else {
$this ->ajaxreturn( array ( 'status' => '2' , 'info' => $notice , 'msg' => "公告不存在" ), 'json' );
}
}
}
|
1
|
$where [ 'endtime' ] = array ( array ( 'eq' ,0), array ( 'gt' ,time()), 'or' ) ;
|
巧妙的处理了这种逻辑关系。
希望本文所述对大家基于thinkphp框架的php程序设计有所帮助。