如何通過ASC順序中的值對此結構進行排序?在ColdFusion中對值進行排序ASC
<cfset dStruct = createObject("java", "java.util.LinkedHashMap").init()>
<cfquery name="gds" datasource="#application.dsn#">
SELECT * FROM stores WHERE region_id = #arguments.retailer_id#
ORDER BY client_loc ASC
</cfquery>
<cfoutput query="gds">
<cfset var dStru = { "#gds.storeid#" = "#gds.client_loc# - #gds.city#, #gds.state#" }>
<cfset StructAppend(dStruct, dStru)>
</cfoutput>
<cfset StructSort(dStruct,"textnocase","asc")>
....
<cfreturn SerializeJSON(dStruct) />
結果然後填充一個下拉列表。下面是結果:
struct
299 | ASH041 - ONTARIO, CA
300 | ASH042 - CLEARWATER, FL
301 | ASH044 - TAMPA, FL
302 | ASH046 - ORLANDO, FL
303 | ASH047 - SARASOTA, FL
304 | ASH048 - TAMPA, FL
305 | ASH002 - HUNTINGTON STN., NY
如果它被正確分類,ASH002將是第一個結果,但它似乎是在KEY,而不是價值排序。有沒有辦法按值排序?
我也試過這個...
<cfset dStruct = createObject("java", "java.util.LinkedHashMap").init() />
無論哪種方式產生相同的結果。下面是結果的截圖...
這裏是填充選擇菜單jquery的。您的SQL語句中
$.ajax({
url: "/functions.cfc",
cache: false,
type: "get",
dataType: "json",
data: {method: "getstoresbyretailer", retailer_id: (retailer_id)}, //get stores
success: function (data) {
var $select = $('#storeid');
$select.find('option').remove();
$.each(data,function(key, value) {
$select.append('<option value=' + key + '>' + value + '</option>');
});
}
});
LinkedHashMap將維護插入順序。但是,這意味着您必須使用「title」值* * not * storeid來排列查詢結果。 – Leigh
你是對的,那是一個錯字。我按client_loc進行排序,但它仍然沒有以正確的排序順序返回到調用頁面。 – Bobmd