我有两个下拉菜单,因为更改第一个下拉菜单会触发一个 jquery change(),它会从第一个下拉菜单中发布带有公司 ID 的帖子。然后运行一个 sql 查询来获取为该公司工作的人员列表,并用选项填充选择框。这工作正常,我已将 sql 查询设置为 ORDER BY admin_name。但是当 jquery 开始将选项插入下拉列表时,它似乎是按选项值排序(admin_id)。我可以做些什么来保持按 admin_name(选项的文本)排序的选项。下面是负责添加选项的 jQuery 代码:
$.post("listSignedBy.php", { company_id: company_id },
function(data) {
alert(data); <-- this shows that the data is sorted correctly by the admin name.
var select = $('#signed_by');
if(select.prop) {
var options = select.prop('options');
}
else {
var options = select.attr('options');
}
$('option', select).remove();
var obj = jQuery.parseJSON(data);
options[options.length] = new Option('-- Select Signed By --', '');
$.each(obj, function(val, text) {
options[options.length] = new Option(text, val);
});
select.val(selectedOption);
});
感谢您的任何帮助,如果您需要任何进一步的信息来帮助排除故障/修复,请告诉我。
根据要求,示例 JSON 数据:
{"19082":"Aaron Smith","19081":"Becky Doe"}
所以在这种情况下,我想要的是:
<option value='19082'>Aaron Smith</option>
<option value='19081'>Becky Doe</option>
但是不是按文本排序,而是按值排序,所以我得到:
<option value='19081'>Becky Doe</option>
<option value='19082'>Aaron Smith</option>