2016-10-05 64 views
1

我想按字母順序升序排列我的選擇框選項。 (從A開始,一直到Z)從數據庫排序selectbox選項

我試着用另一個問題中發現的分揀機,但我似乎無法讓它在我所有的選擇框上工作。我試圖通過使用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; 
       } 
      } 
     } 

在此先感謝

+0

爲什麼不在第一次填充時對數據進行排序 – ManiMuthuPandi

+0

通過在初始(?)時間排序我假設您的意思與@ nusje2000相同?由於他的答案更清晰,我會接受他的,但感謝您的建議,不管 –

回答

2

由於您使用laravel並讓你的數據從數據庫中的標題,你可以一旦從數據庫中選擇它,按字母順序排序。您可以使用Laravel Query Builder作爲默認的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查詢生成器,你可以在參觀laravel文檔更多的東西:https://laravel.com/docs/5.3/queries

我希望這能解決您的問題。

+1

這個伎倆。感謝你及時的答覆 –