weui+使用城市选择器 数据库json数据渲染

修改picker-city.js为picker-citymini.js

+
function(a) {
    a.rawCitiesData = _all_city_data
}($), +
function(a) {
    var b;
    a.fn.cityPicker = function(c) {
            return c = a.extend({},
                    b, c),
                this.each(function() {
                    var o, p, q, b = function(a) {
                            var c, d, b = [];
                            for (c = 0; c < a.length; c++) {
                                d = a[c],
                                    "请选择" !== d.name && b.push(d.name)

                            }
                            return b.length ? b : [""]
                        },
                        d = function(a) {
                            return a.sub ? b(a.sub) : [""]
                        },
                        e = function(a) {
                            for (var b = 0; b < g.length; b++) {
                                if (g[b].name === a) {
                                    return d(g[b])
                                }
                            }
                            return [""]
                        },
                        f = function(a, b) {
                            var c, e;
                            for (c = 0; c < g.length; c++) {
                                if (g[c].name === a) {
                                    for (e = 0; e < g[c].sub.length; e++) {
                                        if (g[c].sub[e].name === b) {
                                            return d(g[c].sub[e])
                                        }
                                    }
                                }
                            }
                            return [""]
                        },
                        g = a.rawCitiesData,
                        h = g.map(function(a) {
                            return a.name
                        }),
                        i = d(g[0]),
                        j = d(g[0].sub[0]),
                        k = h[0],
                        l = i[0],
                        m = j[0],
                        n = [{
                                values: h,
                                cssClass: "col-province"
                            },
                            {
                                values: i,
                                cssClass: "col-city"
                            }
                        ];
                    c.showDistrict && n.push({
                            values: j,
                            cssClass: "col-district"
                        }),
                        o = {
                            cssClass: "city-picker",
                            rotateEffect: !1,
                            onChange: function(a) {
                                var h, i, j, g = a.cols[0].value;
                                return g !== k ? (i = e(g), h = i[0], j = f(g, h), a.cols[1].replaceValues(i), c.showDistrict && a.cols[2].replaceValues(j), k = g, l = h, a.updateValue(), void 0) : (c.showDistrict && (h = a.cols[1].value, h !== l && (a.cols[2].replaceValues(f(g, h)), l = h, a.updateValue())), void 0)
                            },
                            cols: n
                        },
                        this && (p = a.extend(o, c), q = a(this).val(), q && (p.value = q.split(" "), p.value[0] && (k = p.value[0], p.cols[1].values = e(p.value[0])), p.value[1] ? (l = p.value[1], c.showDistrict && (p.cols[2].values = f(p.value[0], p.value[1]))) : (m = p.value[2], c.showDistrict && (p.cols[2].values = f(p.value[0], p.cols[1].values[0])))), a(this).picker(p))
                })
        },
        b = a.fn.cityPicker.prototype.defaults = {
            showDistrict: !0
        }
}($);

使用

    <script src="__STATIC__/weui/zepto.min.js" type="text/javascript"></script>
    <script src="__STATIC__/weui/picker.js" type="text/javascript"></script>
    <script>
    var _all_city_data = {$province};
    </script>
    <script src="__STATIC__/weui/picker-citymini.js" type="text/javascript"></script>
    <script>
    $(function() {
        $("#ssx").cityPicker({
            title: "选择省市县",
        });
        var data = $("#ssx").data('picker');
    })
    </script>

数据获取

        $province = Db::connect('db_lite')->table('lxx_address')->where('class_type', 1)->field('class_id as id,class_name as name')->select();
        foreach ($province as $key => $value) {
            $province[$key]['sub'] = DB::connect('db_lite')->table('lxx_address')->where('class_type', 2)->where('class_parent_id', $province[$key]['id'])->field('class_id as id,class_name as name')->select();
        }
        foreach ($province as $key => $value) {
            foreach ($province[$key]['sub'] as $key2 => $value2) {
                $province[$key]['sub'][$key2]['sub'] = Db::connect('db_lite')->table('lxx_address')->where('class_type', 3)->where('class_parent_id', $province[$key]['sub'][$key2]['id'])->field('class_id as id,class_name as name,class_parent_id as pid')->select();
            }
        }
        $this->assign('province', json_encode($province));
        return view('wap@index/scoket');
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值