1.ajax请求返回map如何解析

  后台返回的数据是这样的:一个结果工具类Result,里面的数据是一个Map, Map里面是一个List集合

前台解析,用下拉框显示,

$('.reload').click(function () {
                //虚拟机id
                var id = $(this).parents('td').children('input:first').val();
                //模板id
                var tempId = $(this).attr('value');
                //拿到部门id
                var groupid = $(this).parents('td').children('input:eq(2)').val();
                //拿到所有部门
                $.ajax({
                    type: 'post',
                    async: false, //同步执行
                    url: '/admin/template/templateList',
                    data: {"templateType": 2,"adminGroup":groupid},
                    dataType: 'json', //返回数据形式为json
                    success: function (result) {
                        if (result) {
                            var map = result['data'];
                            var adminGroupBeansList = map.adminGroupBeans;
                            var templateBeanList = map.templateList;
                            var grouplength=adminGroupBeansList.length;
                            var templength=templateBeanList.length;
                            $("#departmentId").empty();
                            for (var i = 0; i <grouplength; i++) {

                                if (adminGroupBeansList[i].id == groupid) {
                                    $("#departmentId").append('<option value=' + adminGroupBeansList[i].id + ' selected>' + adminGroupBeansList[i].name + '</option>');
                                }
                                else {
                                    $("#departmentId").append('<option value=' + adminGroupBeansList[i].id + '>' + adminGroupBeansList[i].name + '</option>');
                                }
                            }
                            $("#templateId").empty();
                            for (var j = 0; j < templength; j++) {
                                if (templateBeanList[j].id == tempId) {
                                    $("#templateId").append('<option value=' + templateBeanList[j].id + ' selected>' + templateBeanList[j].name + '</option>');

                                    if (templateBeanList[j].osType == 1) {
                                        $("#systemTypeId").empty();
                                        $("#systemTypeId").append('<option value="win"  selected>win</option>');
                                    }
                                    else if (templateBeanList[j].osType == 2) {
                                        $("#systemTypeId").empty();
                                        $("#systemTypeId").append('<option value="unix"  selected>unix</option>');
                                    }
                                } else {
                                    $("#templateId").append('<option value=' + templateBeanList[j].id + '>' + templateBeanList[j].name + '</option>');
                                }
                            }
                            var htmlcontent = $("#htmlId").html();
                            layer.open({
                                title: '重装',
                                content: htmlcontent,
                                area: ['330px', '250px'],
                                btn: '确认重装',
                                yes: function () {
                                    blockUI();
                                    $.post('/admin/vm/reload', {
                                        'id': id,
                                        'templateId': $('#templateId').val()
                                    }, function (res) {
                                        unblockUI();
                                        if (res['bool']) {
                                            jSuccess("操作成功", function () {
                                                window.location.reload();
                                            })
                                        } else {
                                            jFail(res['msg']);
                                        }
                                    })
                                }
                            });
                        }
                    },
                    error: function (errorMsg) {
                        alert("加载数据失败");
                    }
                });
        });

一开始用两个ajax请求数据,结果两个ajax是异步的,胆汁页面没有显示到数据。

 

注意这时下拉框是ajax加载的,想要触发下拉框的改变事件用他的change方法是没有效果的,需要这样:

 <select  onchange="departmentChange(this.options[this.options.selectedIndex].value)"  class="gySelect w150 fl ml10" id="departmentId">

            </select>

 

 function departmentChange(groupid){

            $.ajax({
                type: 'post',
                async: false, //同步执行
                url: '/admin/template/templateList',
                data: {"adminGroup":groupid},
                dataType: 'json', //返回数据形式为json
                success: function (result) {
                    if (result) {
                        var map = result['data'];
                        var adminGroupBeansList = map.adminGroupBeans;
                        var templateBeanList = map.templateList;
                        var grouplength=adminGroupBeansList.length;
                        var templength=templateBeanList.length;
                        $("#departmentId").empty();
                        for (var i = 0; i <grouplength; i++) {
                            if (adminGroupBeansList[i].id == groupid) {
                                $("#departmentId").append('<option value=' + adminGroupBeansList[i].id + ' selected>' + adminGroupBeansList[i].name + '</option>');
                            }
                            else {
                                $("#departmentId").append('<option value=' + adminGroupBeansList[i].id + '>' + adminGroupBeansList[i].name + '</option>');
                            }
                        }
                        $("#templateId").empty();
                        for (var j = 0; j < templength; j++) {
                            if (templateBeanList[j].id == 0) {
                                $("#templateId").append('<option value=' + templateBeanList[j].id + ' selected>' + templateBeanList[j].name + '</option>');

                                if (templateBeanList[j].osType == 1) {
                                    $("#systemTypeId").empty();
                                    $("#systemTypeId").append('<option value="win"  selected>win</option>');
                                }
                                else if (templateBeanList[j].osType == 2) {
                                    $("#systemTypeId").empty();
                                    $("#systemTypeId").append('<option value="unix"  selected>unix</option>');
                                }
                            } else {
                                $("#templateId").append('<option value=' + templateBeanList[j].id + '>' + templateBeanList[j].name + '</option>');
                            }
                        }
                        var htmlcontent = $("#htmlId").html();
                        layer.open({
                            title: '重装',
                            content: htmlcontent,
                            area: ['330px', '250px'],
                            btn: '确认重装',
                            yes: function () {
                                blockUI();
                                $.post('/admin/vm/reload', {
                                    'id': id,
                                    'templateId': $('#templateId').val()
                                }, function (res) {
                                    unblockUI();
                                    if (res['bool']) {
                                        jSuccess("操作成功", function () {
                                            window.location.reload();
                                        })
                                    } else {
                                        jFail(res['msg']);
                                    }
                                })
                            }
                        });
                    }
                },
                error: function (errorMsg) {
                    alert("加载数据失败");
                }
            });

        }

 

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐