2013-10-22 21 views
-1

我想從多重選擇下拉列表中創建一個有序列表,問題是html選擇提供的選擇選項輸入的值是線性的,但我希望按照我選擇的順序。所以我決定使用一些JS來完成這個技巧,但是我們無法攻破。這是代碼。請幫助!從下拉列表中選擇有序的訂單

<script language="'javascript'"> 
    function showselection() 
    { 
    var frm = document.testing 
    var opt = frm.testsel 

    var numofoptions = opt.length 
    var selValue = new Array 

    var j = 0 
    for (i=0; i<numofoptions; i++) 
    { 
     if (opt[i].selected === true) 
     { 
     selValue[j] = opt[i].value 
     j++ 
     } 
    } 

    selValue = selValue.join("+") 

    document.getElementById("txtEditions").innerHTML = selValue 
    } 
</script> 

<form method=POST name='testing'> 
    <select name='testsel' multiple onchange='showselection()'> 
    <option value="one">one</option> 
    <option value="two">two</option> 
    <option value="three">three</option> 
    </select> 
    <textarea id="txtEditions"></textarea> 
</form> 

我如何確保選擇的順序被保存,而不是從下拉

回答

0

笨源的順序有form_dropdown形式幫手/ form_multiselect這可以讓你傳遞一個數組給助手函數來創建html。您可以在使用數組排序功能將數組解析爲此函數之前對數組進行排序,具體取決於您的數據,如ksortasort

抱歉,我無法提供更多幫助,因爲我不清楚您需要做什麼。如果你真的想保存訂單,那就意味着以某種方式將它保存在數據庫結構中。

+0

問題是讓我說我​​有option1。 option2和option3的值分別爲1,2,3 ...如果我按順序選擇option3,option1和option2,我需要按照3,1,2順序將值保存到數據庫中...此刻,它將保存1,2,3 ...不管我的選擇順序如何 – ligonoeugene

+0

選擇小部件並不是最好的方法。在語義上你正在談論一個有序列表。所以使用它,使用令人驚歎的jQuery可拖動小部件在屏幕上排列項目列表。請參閱此處.http://jqueryui.com/draggable/#sortable將有序列表對象發送到數據庫進行存儲。我建議你有一個對象列表來訂購一個容器,然後是另一個有序列表。用戶在列表中拖動他們想要的項目並根據需要進行排序。 – pgee70

+0

這似乎是正確的。真棒解決方案 – ligonoeugene