2017-10-11 158 views
0

我有4个选择,每个继续选择基于前面选择的选择。我将如何发送动态数据与源项目的请求?X-editable如何通过请求发送数据

我试过一个函数,但发现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

使用成功事件并手动设置源参数如下所示。

// 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"); 
    } 
}); 

注意给别人:此代码不检查和处理无效应答或无效的变量贵重物品。