Ajax的基本使用

常规用法

后台代码

// 根据检测室,获取员工
@RequestMapping(value = "selectPersonInfoByLabId", method = {RequestMethod.GET})
@ResponseBody
public String selectPersonInfoByLabId(@RequestParam String labId, Model model) {
    List<PersonInfoExt> list = this.personInfoWebService.selectByLabId(labId);
    return JSON.toJSONString(list);
}

或者

return JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteDateUseDateFormat);

解析JSON

$('#labId').change(function () {
    $.ajaxData.selectPersonInfoByLabId($('#labId').val(), $('#employeeNo'));
})
$.ajaxData = {
    selectPersonInfoByLabId: function (labId, selector) {
        if (labId && labId != "") {
            $.ajax({
                type: "get",
                url: ctx + "/cnf/employee-biz-capacity/selectPersonInfoByLabId?labId=" + labId,
                data: "",
                dataType: "json",
                async: false,
                success: function (jsonData) {
                    var dataList = jsonData;
                    var itemHtml = "<option></option>";
                    for (var i = 0; i < dataList.length; i++) {
                        var r = dataList[i];
                        itemHtml += '<option value=' + r.code + '>' + r.name + '</option>';
                    }
                    // 先清空在添加
                    selector.html(itemHtml);
                    // 触发默认选中第一个
                    if (dataList.length > 0) {
                        selector.val(null).trigger('change');
                    } else {
                        selector.val(null).trigger('change');
                    }
                },
                error: function () {
                }
            })
        }
    }
}

同理
后台代码

@RequestMapping(
        value = "load", method = {RequestMethod.GET}
)
@ResponseBody
public String load(@RequestParam String testObjectId, @RequestParam String testObjectModelId, Model model) {

    List<AssayBusinessItemVo> assayBusinessItemList = assayBusinessItemWebService.selectAssayBusinessItemById(testObjectId, testObjectModelId);
    List<AssayItem> assayItemList = assayItemWebService.selectAssayItemListById(testObjectId, testObjectModelId);
    List<BusinessTask> businessTaskList = businessTaskWebService.selectBusinessTaskListById(testObjectId, testObjectModelId);
    model.addAttribute("assayBusinessItemList", assayBusinessItemList);
    model.addAttribute("assayItemList", assayItemList);
    model.addAttribute("businessTaskList", businessTaskList);
    return JSON.toJSONString(model);
}

解析JSON

function loadTestObjectModel(id) {
    var url = '${ctx}/dic/test-object-model/load?testObjectId=' + id;
    $.get(url, function (result) {
            $("#testObjectModelIdSelect").select2('val', "")
            var options = [];
            var data = result.page;
            if (data.length > 0) {
                for (var i = 0; i < data.length; i++) {
                    options.push({id: data[i].id, text: data[i].testObjectModelCode})
                }
            }
            $("#testObjectModelIdSelect").select2({
                data: options,
                placeholder: '请选择样规格型号',
                allowClear: true
            })
        },
        "json"
    );
}

同理
后台代码

@RequestMapping(value = {"create"}, method = {RequestMethod.GET})
public String showEditForm(Model model) {
    List<PersonInfoExt> personInfoList = this.personInfoWebService.selectByDeptmentCodes(currentUser != null ? currentUser.getDepartmentCode() : null);
    model.addAttribute("personInfoList", JSON.toJSONString(personInfoList));
}

解析JSON

$("#normal-plan-tbody").on("click", "td", function () {
    var td = $(this);
    var classText = $(this).attr('class');
    if (classText == 'samplingOprator') {
        // 下拉框
        var txt = $("<select name='cell' id='samplingSelect' type='text' class='form-control' style='margin: 0px;" +
            "border-style: none;padding: 0px;height: 100%;width: 100%'></select>");
        var options = '<option ></option>';
        var personInfoList = '${personInfoList}';
        var json = $.parseJSON(personInfoList);
        for (var i = 0; i < json.length; i++) {
            var person = json[i];
            options += '<option value="' + person.code + '">' + person.name + '</option>';
        }
        txt.append(options);
        // 清空原有值
        td.text("");
        // 绑定元素
        td.append(txt);
        // 获取焦点
        txt.focus();
        // select2
        txt.select2({width: 100 + "%", placeholder: "请选择", allowClear: true});
        // 选中
        txt.change(function () {
            var newText = $(this).select2('data').text;
            var newVal = $(this).val();
            var value = td.parent('tr').find('td').eq(1).find('input').attr('value');
            value = value + ',' + newVal;
            $.ajax({
                type: 'POST',
                url: ctx + "/biz/plan/daily-plan/updatePerson",
                data: {value: value},
                dataType: 'JSON',
                success: function (res) {
                    var message = res.message;
                    // 移除文本框,显示新值
                    td.html('');
                    td.text(newText);
                },
                error: function () {
                }
            });
        });
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值