小程序实现省市选择

小程序里面自带省市县选择,但是一般情况下,我们不需要具体到县。只选省市就可以了。

wxml代码:

<picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" range-key="name" range="{{provinces}}">    
    <span class="padl0">
         当前选择:{{province}}-{{city}}                
    </span>  
</picker>

rane-key代表显示省份或城市名称。

js代码:

onLoad: function (options) {
    var that = this;
      wx.request({
        url: app.globalData.url +'index/ajax/province',
        data: { current:0,from:'xcx'},
        method: 'post',
        header: { 'Content-Type': 'application/json' },
        success:function(res2){
          that.setData({
            region: res2.data
          });
          const provinces = [[],[]];
          const citys = [[],[]];
          const countys = [];
          
          for (let i = 0; i < that.data.region.length; i++) {
            var obj = new Object;
            obj.itemid = that.data.region[i].itemid;
            obj.name = that.data.region[i].name
            provinces[0].push(obj);
          }
          //console.log("初始化省份");
          for (let i = 0; i < that.data.region[0].city.length; i++) {
            var obj = new Object;
            obj.itemid = that.data.region[0].city[i].itemid;
            obj.name = that.data.region[0].city[i].name;
            obj.pid = that.data.region[0].city[i].pid;
            //citys.push(that.data.region[0].city[i].name)
            provinces[1].push(obj);
          }
          //console.log('初始化城市');
          that.setData({
            'provinces': provinces,
            'citys': citys,
            'province': that.data.region[0].name,
            'city': that.data.region[0].city[0].name
          })
        }
      });
    
  },

页面加载的时候读取省份和城市数据库,服务端代码,请加V信咨询。

bindMultiPickerChange:function(e){
    console.log(this.data.provinceid);//获取了省份编号
    console.log(this.data.cityid);//获取了城市编号
  },
  bindMultiPickerColumnChange: function (e) { 
    var that = this;
    switch (e.detail.column) { 
      case 0: 
           //当选择了省份的时候
        that.setData({
          "provinces[1]": that.data.region[e.detail.value].city,
          "province": that.data.region[e.detail.value].name,
          "provinceid": that.data.region[e.detail.value].itemid,
          "city": that.data.region[e.detail.value].city[0].name
        });
        break; 
      case 1:
        //当选择了城市以后
        that.setData({
          "city": that.data.provinces[1][e.detail.value].name,
          "cityid": that.data.provinces[1][e.detail.value].itemid
        });      
    } 
  },

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值