本文实例分析了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程序设计有所帮助。