thinkPHP商城公告功能开发问题分析

5年以前  |  阅读数:589 次  |  编程语言:PHP 

本文实例分析了thinkPHP商城公告功能开发问题。分享给大家供大家参考,具体如下:

效果如下

1.定在头部


    position: fixed;
    z-index: 999;
    top: 0;
    opacity:1;

2.ajax处理json数据


    // 获取商城公告
    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.最后加载,页面更好看。


    $(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处理


    // 获取公告
    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');
          }
        }
    }


    $where['endtime'] = array(array('eq',0),array('gt',time()), 'or') ;

巧妙的处理了这种逻辑关系。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
将二进制数据转为16进制以便显示
获取IMSI
获取IMEI
Java生成UUID
PHP自定义函数获取搜索引擎来源关键字的方法
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
php+ajax+json 详解及实例代码
Yii2汉字转拼音类的实例代码
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例
php数组合并array_merge()函数使用注意事项
PHP设计模式之工厂模式与单例模式
PHP实现简单爬虫的方法
php实现数组中索引关联数据转换成json对象的方法
wget使用技巧