如何通过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