我按如下方式返回JSON响应,以动态填充下拉列表:
Route::get('api/city_list', function()
{
$selected_state = Input::get('selected_state');
$city_list = City::where('state_id', '=', $selected_state)
->orderBy('name')
->lists('name', 'id');
return $city_list;
});
直接点击URL时,数据按预期排序,但在处理客户端时,数据按ID排序,而不是按城市名称排序。 JQuery的:
$.getJSON("<URL>",
{ selected_state: $('#location_state').val() },
function(data) {
console.log(data) // << HERE THE LOG SHOWS THE SORT BY ID NOT NAME
var city = $('#location_city');
city.empty();
$.each(data, function(index, value) {
city.append($('<option />').val(index).text(value));
});
}
);
毫无疑问,我缺少一些简单的东西,但为什么要使用数据呢?我想请求数据,它是服务器端排序和维护排序顺序。
答案 0 :(得分:0)
为什么不在客户端对数据进行排序呢?
data.sort(function(a,b)
{
return a.name - b.name;
});
答案 1 :(得分:0)
如果您希望在javascript(简称JSON)中重新创建对象符号数据,则可以使用第三个库来查询您的项目。我喜欢jLinq:http://hugoware.net/projects/jlinq
注意:它既轻巧又直观,但它只对大量数据有效(超过100,000的任何内容都会降低您的性能)