- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- 微信小程序中如何實(shí)現ecshop地址三級聯(lián)動(dòng)
這篇文章給大家分享的是有關(guān)微信小程序中如何實(shí)現ecshop地址三級聯(lián)動(dòng)的內容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
微信小程序如何實(shí)現ecshop地址3級聯(lián)動(dòng)
picker標簽,官方給出的實(shí)例:
<view class="section"> <view class="section__title">地區選擇器</view> <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> <view class="picker"> 當前選擇:{{array[index]}} </view> </picker> </view> Page({ data: { array: ['美國', '中國', '巴西', '日本'], index: 0, }, bindPickerChange: function(e) { console.log('picker發(fā)送選擇改變,攜帶值為', e.detail.value) this.setData({ index: e.detail.value }) }, })
wxml頁(yè)面:
<view class="add-list under-line" > <view class="add-lab">收貨地址</view> <view class="add-text"> <picker class="w-3" bindchange="bindPickerProvince" value="{{provinceIndex}}" range="{{province}}" > <view class="picker">{{province[provinceIndex]}}</view> </picker> <picker class="w-3" bindchange="bindPickerCity" value="{{cityIndex}}" range="{{city}}" > <view class="picker">{{city[cityIndex]}}</view> </picker> <picker class="w-3" bindchange="bindPickerDistrict" value="{{districtIndex}}" range="{{district}}" > <view class="picker">{{district[districtIndex]}}</view> </picker> </view> </view>
js頁(yè)面:
var app = getApp() Page({ data:{ motto: 'jxcat', serverUrl: app.globalData.ajaxUrl, baseUrl: app.globalData.baseUrl, title: "收貨地址", address_id: "", address: "", province:[], province_id: [], //后臺返回的數據對應 region_id city,district 與此相同 province_name: [], //后臺返回的數據對應 region_name provinceIndex: 0, //wxml頁(yè)面選擇的選項,從0開(kāi)始 provinceId: 0, //根據wxml頁(yè)面選擇的選項獲取到province_id: []對應的region_id city:[]. city_id: [], city_name: [], cityIndex: 0, cityId: 0, district:[], district_id: [], district_name: [], districtIndex: 0, districtId: 0, }, onLoad:function(options){ // 頁(yè)面初始化 options為頁(yè)面跳轉所帶來(lái)的參數 var that = this var get_data wx.checkSession({ success: function(){ //登錄態(tài)未過(guò)期 wx.getStorage({ key: 'wcx_session', success: function(sres) { get_data = { m: 'api', c: 'user' , a: 'edit_address', wcx_session: sres.data, } if(options.act == 'edit'){ get_data = { m: 'api', c: 'user' , a: 'edit_address', id: options.id, wcx_session: sres.data, } } wx.request({ url: app.globalData.ajaxUrl, data: get_data, header: { 'content-type': 'application/json' }, success: function(res) { if(options.act == "edit"){ that.data.provinceId = res.data.consignee.province that.data.cityId = res.data.consignee.city that.data.districtid = res.data.consignee.district } for(var i=0; i<res.data.province_list.length; i++){{ that.data.province_id[i] = res.data.province_list[i].region_id //把region_id存入province_id that.data.province_name[i] = res.data.province_list[i].region_name //把region_name存入province_name if(res.data.consignee.province == res.data.province_list[i].region_id){ that.data.provinceIndex = i } }} for(var i=0; i<res.data.city_list.length; i++){{ that.data.city_id[i] = res.data.city_list[i].region_id that.data.city_name[i] = res.data.city_list[i].region_name if(res.data.consignee.city == res.data.city_list[i].region_id){ that.data.cityIndex = i } }} for(var i=0; i<res.data.district_list.length; i++){{ that.data.district_id[i] = res.data.district_list[i].region_id that.data.district_name[i] = res.data.district_list[i].region_name if(res.data.consignee.district == res.data.district_list[i].region_id){ that.data.districtIndex = i } }} that.data.address_id = options.id that.setData({ consignee: res.data.consignee, province: that.data.province_name, provinceIndex: that.data.provinceIndex, city: that.data.city_name, cityIndex: that.data.cityIndex, district: that.data.district_name, districtIndex: that.data.districtIndex }) } }) //request } }) }, fail: function(){ //登錄態(tài)過(guò)期 wx.login() } }) }, bindPickerProvince: function(event){ var that = this var getId = event.detail.value //獲取到wxml選擇的選項對應的下標,從0開(kāi)始 that.data.provinceId = that.data.province_id[getId] //根據獲取到的下標獲取到region_name對應的region_id wx.request({ url: app.globalData.ajaxUrl, data: { m: 'api', c: 'public' , a: 'region', rtype: 2, rparent: that.data.provinceId, }, header: { 'content-type': 'application/json' }, success: function(res){ for(var i=0; i<res.data.regions.length; i++){{ that.data.city_id[i] = res.data.regions[i].region_id that.data.city_name[i] = res.data.regions[i].region_name }} that.setData({ city: that.data.city_name, provinceIndex: getId, }) }, }) }, bindPickerCity: function(event){ var that = this var getId = event.detail.value that.data.cityId = that.data.city_id[getId] wx.request({ url: app.globalData.ajaxUrl, data: { m: 'api', c: 'public' , a: 'region', rtype: 3, rparent: that.data.cityId, }, header: { 'content-type': 'application/json' }, success: function(res){ for(var i=0; i<res.data.regions.length; i++){{ that.data.district_id[i] = res.data.regions[i].region_id that.data.district_name[i] = res.data.regions[i].region_name }} that.setData({ district: that.data.district_name, cityIndex: getId, }) }, }) }, bindPickerDistrict: function(event){ var that = this var getId = event.detail.value that.data.districtId = that.data.district_id[getId] that.setData({ districtIndex: getId, }) }, formSubmit: function(event) { var that = this wx.checkSession({ success: function(){ //登錄態(tài)未過(guò)期 wx.getStorage({ key: 'wcx_session', success: function(sres) { wx.request({ url: app.globalData.ajaxUrl, data: { m: 'api', c: 'user' , a: 'add_address', address_id: that.data.address_id, province: that.data.provinceId, // wxml頁(yè)面選擇的地址對應的 region_id city: that.data.cityId, district: that.data.districtId, address: event.detail.value.address, consignee: event.detail.value.consignee, mobile: event.detail.value.mobile, zipcode: event.detail.value.zipcode, wcx_session: sres.data, }, header: { 'content-type': 'application/json' }, success: function(res) { console.log(res) wx.redirectTo({ url: 'address' }) } }) //request } }) }, fail: function(){ //登錄態(tài)過(guò)期 wx.login() } }) }, })
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站