从数据库中排序选择框选项

时间:2016-10-05 06:11:46

标签: javascript php html laravel

我正在尝试按字母顺序升序排序我的选择框选项。 (从A开始,一直到Z)

我尝试使用我在另一个问题中找到的分拣机,但我似乎无法让它在我的所有选择框上工作。我尝试使用document.getElementsByTagName()来调用选择框,但这似乎也不起作用。

这是我正在尝试使用的功能:

function sortlist() {

            var selectOptions = document.getElementsByClassName("sortList");
            var selectOptionsTexts = new Array();
            console.log(selectOptions);

            for (i = 2; i < selectOptions.length; i++) {
                selectOptionsTexts[i - 2] =
                        selectOptions.options[i].text.toUpperCase() + "," +
                        selectOptions.options[i].text + "," +
                        selectOptions.options[i].value + "," +
                        selectOptions.options[i].selected;
            }

            selectOptionsTexts.sort();

            for (i = 2; i < selectOptions.length; i++) {
                var parts = selectOptionsTexts[i - 2].split(',');

                selectOptions.options[i].text = parts[1];
                selectOptions.options[i].value = parts[2];
                if (parts[3] == "true") {
                    selectOptions.options[i].selected = true;
                } else {
                    selectOptions.options[i].selected = false;
                }
            }
        }

提前致谢

1 个答案:

答案 0 :(得分:2)

由于您正在使用laravel并从标题中获取数据库中的数据,因此只需从数据库中选择它就可以按字母顺序对其进行排序。您可以使用Laravel查询生成器或默认的sql方法。

Laravel查询:

DB::table('your_table')->orderBy('col_name', 'asc'); //asc = ascending, desc = descending

SQL查询:

SELECT * FROM your_table ORDER BY column_name ASC //ASC = ascending, DESC = descending

有关laravel查询构建器的更多信息,您可以访问:https://laravel.com/docs/5.3/queries上的laravel文档。

我希望这能解决你的问题。