我有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()
}
}
});
答案 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");
}
});
其他人注意:此代码不会检查和处理无效回复或无效变量贵重物品。