微信小程序中,如果没有参数,如何设置默认参数?
现在学会小程序,这方面的知识,需要积累。
现在的情况是这样:
如果想从后端获取产品列表,而这些列表是可以根据分类来获取的,也是可以获取所有产品的。
那么,为了不使小程序报错,那么,我们就可以将不传的参数设默认值为0,然后,传到后端。
var objectId = options.title||'所有商品';
var cat_id = options.cat_id||0;
var ptype = options.ptype||0;
var brandId = options.brandId||0;
这种方式,就可以设置默认值。
在后端,根据参数是不是为0,来作条件过滤。
if(intval($id)){ $where.=" AND cid=".intval($id); }这样的写法,如果$id为0,则会返回false,而不会执行里面的逻辑。
搞定
小程序前端wxml
<navigator url="../listdetail/listdetail" class="item"> <image src="../../static/images/more.png" background-size="cover"></image> <text>更多</text> </navigator>
或是
<navigator url="../listdetail/listdetail?cat_id={{item.id}}&title={{item.name}}" class="item {{(index+1) % 3 == 0 ? 'last' : ''}}" wx:for="{{typeTree}}" wx:key="" wx:for-item="item"> <image class="icon" src="{{item.bz_1}}"></image> <text class="txt">{{item.name}}</text> </navigator>
小程序js
onLoad: function (options) { console.log(options); console.log(options.title); var objectId = options.title||'所有商品'; //更改头部标题 wx.setNavigationBarTitle({ title: objectId, success: function () { }, }); //页面初始化 options为页面跳转所带来的参数 var cat_id = options.cat_id||0; var ptype = options.ptype||0; var brandId = options.brandId||0; var that = this; that.setData({ ptype: ptype, catId: cat_id, brandId: brandId }) //ajax请求数据 wx.request({ url: app.d.ceshiUrl + '/Api/Product/lists', method: 'post', data: { cat_id: cat_id, ptype: ptype, brand_id: brandId }, header: { 'content-type': 'application/x-www-form-urlencoded' }, success: function (res) { var shoplist = res.data.pro; that.setData({ shopList: shoplist }) }, error: function (e) { wx.showToast({ title: '网络异常!', duration: 2000 }); } }) },
php后端:
/** * 获取商品列表接口 */ public function lists(){ $json=""; $id=intval($_POST['cat_id']);//获得分类id 这里的id是pro表里的cid $brand_id = intval($_POST['brand_id']); // $id=44; $type=I('post.type');//排序类型 $page= intval($_POST['page']) ? intval($_POST['page']) : 0; $keyword=I('post.keyword'); //排序 $order="addtime desc";//默认按添加时间排序 if($type=='ids'){ $order="id desc"; }elseif($type=='sale'){ $order="shiyong desc"; }elseif($type=='price'){ $order="price_yh desc"; }elseif($type=='hot'){ $order="renqi desc"; } //条件 $where="1=1 AND pro_type=1 AND del=0 AND is_down=0"; if(intval($id)){ $where.=" AND cid=".intval($id); } if (intval($brand_id)) { $where.=" AND brand_id=".intval($brand_id); } if($keyword) { $where.=' AND name LIKE "%'.$keyword.'%"'; } if (isset($_REQUEST['ptype']) && $_REQUEST['ptype']=='new') { $where .=' AND is_show=1'; } if (isset($_REQUEST['ptype']) && $_REQUEST['ptype']=='hot') { $where .=' AND is_hot=1'; } if (isset($_REQUEST['ptype']) && $_REQUEST['ptype']=='zk') { $where .=' AND is_sale=1'; } $product=M('product')->where($where)->order($order)->limit($page.',20')->select(); //echo M('product')->_sql();exit; $json = array();$json_arr = array(); foreach ($product as $k => $v) { $json['id']=$v['id']; $json['name']=$v['name']; $json['photo_x']=__DATAURL__.$v['photo_x']; $json['price']=$v['price']; $json['price_yh']=$v['price_yh']; $json['shiyong']=$v['shiyong']; $json['intro']=$v['intro']; $json_arr[] = $json; } $cat_name=M('category')->where("id=".intval($id))->getField('name'); $cat_pic=M('category')->where("id=".intval($id))->getField('bz_2'); echo json_encode(array('status'=>1,'pro'=>$json_arr,'cat_name'=>$cat_name,'cat_pic'=>$cat_pic)); exit(); }
微信小程序中,如果没有参数,如何设置默认参数?的更多相关文章
- 微信小程序中如何使用setData修改数组或对象中的某一参数
本人也是刚开始接触微信小程序,在微信小程序中经常会遇到修改数组中某一项的值,比如array[0]或者是对象中object.item的值.这些值在微信小程序中都需要使用一个名为setData的方法,而这 ...
- 微信小程序中的组件使用1
不管是vue还是react中,都在强调组件思想,同样,在微信小程序中也是使用组件思想来实现页面复用的,下面就简单介绍一下微信小程序中的组件思想. 组件定义与使用 要使用组件,首先需要有组件页面和使用组 ...
- 微信小程序中如何使用WebSocket实现长连接(含完整源码)
本文由腾讯云技术团队原创,感谢作者的分享. 1.前言 微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架.组件以及 API,在这个平台上面的想象空间很大.腾讯云研究了一番之后,发现 ...
- 微信小程序中的app.js-清除缓存
微信小程序中的app.js 关于小程序app.js生命周期的介绍 App(Object) App() 函数用来注册一个小程序.接受一个 Object 参数,其指定小程序的生命周期回调等. App() ...
- 在微信小程序中使用LeanCloud(一)
之前学习了微信小程序前端,使用到LeanCloud线上数据库 [传送门].作为一个前端开发人员,了解后端及数据库是学习工作的需要. LeanCloud直接登录,未注册直接创建账户.它是一款免费的线上数 ...
- 微信小程序中事件
微信小程序中事件 一.常见的事件有 类型 触发条件 最低版本 touchstart 手指触摸动作开始 touchmove 手指触摸后移动 touchcancel 手指触摸动作被打断,如来电提醒,弹窗 ...
- ES6中Class的用法及在微信小程序中的应用实例
1.ES6的基本用法 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板.通过class关键字,可以定义类.基本上,ES6 的class可以看作只是一个语法糖,它的绝 ...
- 去除富文本中的html标签及vue、react、微信小程序中的过滤器
在获取富文本后,又只要显示部分内容,需要去除富文本标签,然后再截取其中一部分内容:然后就是过滤器,在微信小程序中使用还是挺多次的,在vue及react中也遇到过 1.富文本去除html标签 去除htm ...
- 微信小程序中显示html富文本的方法
微信小程序中显示html富文本的方法 使用方法:git地址:https://github.com/icindy/wxParse 一.下载wxParse文件 二.在要引入的页面的js文件中,引入文件 j ...
- 微信小程序中promise的使用
简介 相信看到这篇文章的同学,都已经对微信小程序的api文档有所了解了,也都经历了微信小程序api回调函数嵌套的痛苦,才会想要通过Promise解决回调地狱这个问题,我下面就直接介绍怎么在小程序中使用 ...
随机推荐
- 【NPDP笔记】第三章 新产品流程
3.1 产品开发,风险与汇报的过程,开发实践和流程提升成功率 管控新产品失败的风险,随着成本增加,风险降低 知识能改改进决策,降低风险,决策框架 识别问题与机会 收集信息 组织记录,组织员工 外部 ...
- Qt5.QtCreator_屏蔽警告
ZC:注意: 修改了这个配置的话,如果有多个Qt进程的话,它不会自动同步各个进程中的值,可能是 以最后保存的为准(需要注意 ! !) 1.QtCreator屏蔽指定警告 - weixin_409542 ...
- 2019年新加坡之行 Day 1
又到了公司每年一次的年度旅游,继前几年的香港.日本.韩国游后,今年公司选择了新加坡.由于之前曾在新加坡公司The Adventus Consultants工作过2年时间,所以对于这次重返新加坡,我还是 ...
- Ajax返回的数据存放到js数组
js定义数组比较简单: var array = [ ] ; 即可 今天记录一下 js 数组的常用规则: 1. b = [1,'da',"sdaf"]; //定义数组给数组添加默认 ...
- c#中特性Attribute
接上篇: 特性介绍: 特性是一个类,需要间接或者直接继承Attribute父类,在标记特性时以中括号包裹,可以标记在元素之前.AttributeTargets.Class设置标记的元素,需要明确指定标 ...
- 前端与算法 leetcode 66. 加一
目录 # 前端与算法 leetcode 66. 加一 题目描述 概要 提示 解析 解法一 解法二 算法 # 前端与算法 leetcode 66. 加一 题目描述 给定一个由整数组成的非空数组所表示的非 ...
- 更改ubuntu桌面环境
1.修改桌面环境 update-alternatives --config x-session-manager 2.卸载某一种ppa源下面的软件 sudo apt-get install ppa-pu ...
- Codeforces Round #603 (Div. 2) (题解)
A. Sweet Problem (找规律) 题目链接 大致思路: 有一点瞎猜的,首先排一个序, \(a_1>a_2>a_3\) ,发现如果 \(a_1>=a_2+a_3\) ,那么 ...
- 【Python爬虫案例学习2】python多线程爬取youtube视频
转载:https://www.cnblogs.com/binglansky/p/8534544.html 开发环境: python2.7 + win10 开始先说一下,访问youtube需要那啥的,请 ...
- Python之路【第二十三篇】:数据库基础
数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...