用bootstrap做下拉菜单,并使用jQuery实现从服务器加载下拉菜单的item。

用bootstrap做下拉菜单,并使用jQuery实现从服务器异步加载下拉菜单的item。

前台代码:

<div class="form-group">
                <label class="col-md-2 control-label" for="phone_num">设备分中心</label>
                <div class="col-md-8">
                    <input class="form-control" name="phone_num1" type="text" id="phone_num" placeholder="" value="" required />
                </div>
                <div class="dropdown">
                    <button class="btn btn-default dropdown-toggle" type="button" id="unitid" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                        选择<span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu" aria-labelledby="unitid" id="unitItem">  
                    </ul>          
                </div>
            </div>
$("#unitid").bind("click", function () {            
                $.ajax({
                    url: "/control/showunit/",
                    dataType: "json",
                    success: function (data) {
                        $.each(data, function (index, units) {
                            $("#unitItem").append("<li><a href='#'>" + units.unit + "</a></li>");
                        });
                    },
                   
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("error");
                    }
                });
            });
后台代码:

<pre name="code" class="python">def showunit (request):
    '''显示所有公司的视图'''
    start=request.POST.get('start','')
    logging.info(start)
    logging.info('hsa')
    s_list = []
    allunit= Unit.objects.all()
    for item in allunit:
        comptuple = {}
        comptuple['id'] = item.unitidx1
        comptuple['unit'] = item.name1
        s_list.append(comptuple)
    s_list=set_dict(s_list)
    total_count = len(s_list)
    root_name = 'units'
    #data = '{"total":%s,%s:%s}' %(total_count,root_name,simplejson.dumps(s_list))<span style="color:#33cc00;">#这种格式不是严格的json格式,返回时执行error函数;</span>
    data = '%s' %(simplejson.dumps(s_list))
    return HttpResponse(data,mimetype='text/javascript;')
#后台必须返回严格的json格式数据,否则ajax不执行success回调而是执行了error回调

 诶,起先在前台修改了好几次代码,每次后台成功返回了数据,但不执行success函数,执行error函数,后来经过搜索发现应该是后台返回的json数据并不是严格的json格式,主要是参考了这篇文章 
ajax不执行success回调而是执行了error回调


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值