X-editable如何使用请求发送数据

时间:2017-10-11 23:19:21

标签: x-editable

我有4个选择,每个进行选择都基于先前选择的选择。如何使用源项目请求发送动态数据?

我尝试了一个函数,但发现jQuery getJSON()是异步的,并且不会像我需要的那样工作。

这是我目前的情况。是的,我知道,它也不起作用。

// Location_Site X-editable init
$("#location-aisle").editable({
    url: BASE_URL + "item/edit_item",
    title: "Site aisle",
    params: {
        type: "location-site"
    },
    sourceCache: false,
    source: BASE_URL + "item/get_aisles",
    sourceOptions: {
        headers: {
            "aisle-id": $("#location-site").val()
        }
    }
});

1 个答案:

答案 0 :(得分:0)

使用成功事件计算出来并手动设置源参数。

// Location_Site X-editable init
$("#location-site").editable({
    url: BASE_URL + "item/edit_item",
    title: "Location site",
    params: {
        type: "location-site"
    },
    source: sites,
    success: function (response, newValue) {
        // Get aisles for site
        $.getJSON(BASE_URL + "item/get_aisles/" + newValue, function(data) {
            outputDebug(data);

            // Load aisles into drop down
            if (data && data.length > 0) {
                $("#location-aisle").editable("option", "source", data);
                $("#location-aisle").editable("enable");
            } else {
                window.alert("Failed to load aisles for selected site.");
            }
        }, "json");
    }
});

这是下一级下拉以提供更好的示例

// Location_Site X-editable init
$("#location-aisle").editable({
    url: BASE_URL + "item/edit_item",
    title: "Site aisle",
    params: {
        type: "location-aisle"
    },
    success: function (response, newValue) {
        // Get columns for site
        $.getJSON(BASE_URL + "item/get_columns/" + newValue, function(data) {
            outputDebug(data);

            // Load aisles into drop down
            if (data && data.length > 0) {
                $("#location-column").editable("option", "source", data);
                $("#location-column").editable("enable");
            } else {
                window.alert("Failed to load columns for selected site.");
            }
        }, "json");
        //
        // Get rows for site
        $.getJSON(BASE_URL + "item/get_rows/" + newValue, function(data) {
            outputDebug(data);

            // Load aisles into drop down
            if (data && data.length > 0) {
                $("#location-row").editable("option", "source", data);
                $("#location-row").editable("enable");
            } else {
                window.alert("Failed to load rows for selected site.");
            }
        }, "json");
    }
});

其他人注意:此代码不会检查和处理无效回复或无效变量贵重物品。