web2py的ajax写法

虽然web2py有自成一套的ajax,但是我觉得很难用,还是记录一下通用的ajax写法,以备后用。

$('#city').change(function () {     
        city = $("#city").val()
        $("#county").empty();
        if(city==""){
            $("#county").empty();
            $("#county").append('<option value="">请选择百旺机构所在区/县</option>')
            window.location.href="credit_detail";
            return false
        }
      $.ajax({    
            type:'get',        
            url:'credit_detail',    
            data:{
                "city":city
            },        
            dataType:'json',    
            success:function(countyDatas){
                $("#county").append('<option value="">请选择百旺机构所在区/县</option>')         
                $.each(countyDatas[0], function(key, countyData) {
                  var option = '<option value="'+countyData+'">'+key+'</option>'
                  $("#county").append(option)
              })
                $("#ccistable").empty()
                $("#ccistable").append('<tr><td>百旺机构名称</td><td>百旺机构代码</td><td>已绑定网点数</td><td>操作</td></tr>')
                bwDatas = countyDatas[1]
                console.log(bwDatas)
                countDatas = countyDatas[2]
                for(i=0;i<bwDatas.length;i++){
                    console.log(bwDatas[i].bwid)
                    var tr = "<tr><td>"+bwDatas[i].bworgname+"</td><td>"+bwDatas[i].bworgid+"</td><td>"+countDatas[bwDatas[i].bwid]+"</td><td><a class='button2 dark' href='credit_billing_update?bwid="+bwDatas[i].bwid+"'>修改</a><button class='button2 dark' value='"+bwDatas[i].bwid+"' onclick='deleteorg(this.value);'>删除</button></td></tr>"
                    $("#ccistable").append(tr)
                }
            },
            error:function(){
                layer.alert("级联失败,请联系管理员")
            }
         });
      });

这个ajax实现的是通过获取前端页面所选取的市、区/县来获取后台符合条件的数据,后台逻辑如下:

def credit_detail():
    import json
    pro = auth.user.province
    query = (db.org10.province.startswith(pro))
    citylist = db(query).select(db.org10.city,groupby=db.org10.city)
    reason = db(query).select()
    city = request.vars.city
    county = request.vars.county
    countdic = {}
    countydic = {}
    bankdic = {}
    finalreason = []
    for row in reason:
        count = db(db.batch11.bwid==row["bwid"]).count()
        countdic[row["bwid"]] = count
    if (city != None) and (city != "") and (county==None):
        countydic = {}
        countdic = {}
        reasonList = []
        query = (db.org10.city==city) & query
        reason = db(query).select()
        for row in reason:
            countydic[row["county"]] = row["county"]
            count = db(db.batch11.bwid==row["bwid"]).count()
            countdic[row["bwid"]] = count
        for row in reason:
            reasondic = {}
            reasondic["bworgname"] = row["bworgname"]
            reasondic["bworgid"] = row["bworgid"]
            reasondic["bwid"] = row["bwid"]
            reasonList.append(reasondic)
        finalreason.append(countydic)
        finalreason.append(reasonList)
        finalreason.append(countdic)
        return json.dumps(finalreason)
    if county != None and county != "":
        countdic = {}
        reasonList = []
        query = (db.org10.city==city) & (db.org10.county==county) & query
        reason = db(query).select()
        for row in reason:
            count = db(db.batch11.bwid==row["bwid"]).count()
            countdic[row["bwid"]] = count
        for row in reason:
            reasondic = {}
            reasondic["bworgname"] = row["bworgname"]
            reasondic["bworgid"] = row["bworgid"]
            reasondic["bwid"] = row["bwid"]
            reasonList.append(reasondic)
        finalreason.append(reasonList)
        finalreason.append(countdic)
        return json.dumps(finalreason)
    return dict(
        citylist=citylist,
        reason=reason,
        countdic=countdic
    )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值