从 AJAX 调用的 PHP 对数组进行排序不起作用
Ordering array from PHP called by AJAX not working
我现在正在这样做:
$.ajax({
url: 'full_db.php',
type: 'GET',
dataType: 'JSON',
data: {col_name: firstSel},
success: function(data) {
var full_options = [];
$.each(data, function (i, data) {
full_options.push(data.age);
full_options.sort(function(a, b){
return a.age - b.age;
});
$('#second_select').append("<option>" + data.age + "</option>");
});
}
});
这会将所有不同的年龄附加到我的选择(second_select
),如果我控制台日志full_options
我明白这个:
["55", "98", "34", "30", "45", "29", "26", "22", "37", "42", "32", "33", "36", "35", "56", "46", "25", "54", "86"]
我希望按升序排列(例如:22、25、26、29,...)。
我在这里做错了什么,我得到了一个无序数组?
我正在为我所做的评论提供答案。
如果您正在执行数据库调用,请在查询中进行排序
SELECT * from table ORDER BY column_name DESC
你最好在PHP或MySQL进入JavaScript之前对数据进行排序。
但是如果你愿意,你肯定可以在JavaScript中对数组进行排序。
full_options.sort(); // ascending order [1,2,3]
或
full_options.sort();
full_options.reverse(); // descending order [3,2,1]
以下是您的表演:
full_options.sort(function(a, b){
return a.age - b.age;
});
这是一种更复杂的方法,它按升序排序。但是你在错误的地方执行它。
您的代码应该是:
$.ajax({
url: 'full_db.php',
type: 'GET',
dataType: 'JSON',
data: {col_name: firstSel},
success: function(data)
{
var full_options = [];
$.each(data, function (i, data)
{
full_options.push(data.age);
$('#second_select').append("<option>" + data.age + "</option>");
});
full_options.sort();
}
});
相关文章:
- jquery中DataTables插件中的排序不起作用
- j查询排序不起作用
- 为什么这种 jquery 驱动的表排序不起作用
- jQuery DataTables排序不起作用
- populate中的Mongoose排序不起作用
- 使用J-query数据表,美国日期格式的自定义排序不起作用
- jQuery 表排序器排序不起作用
- 从 AJAX 调用的 PHP 对数组进行排序不起作用
- Jquery UI 可排序不起作用
- 基于CSS类和文本对元素进行排序不起作用
- 使用嵌套json时,ngTable中的排序不起作用
- js文档排序不起作用
- jQueryDataTables-当日期也是一个链接时,排序不起作用
- angularJS:动态标题排序不起作用
- ng表排序不起作用
- 淘汰排序不起作用
- SlickGrid:重新排序后的排序不起作用
- 数据表排序不起作用
- 数组排序不起作用
- jqgrid:动态添加记录后排序不起作用