2010-04-14 76 views
0

好吧,我從另一個選擇框中選擇通過JavaScript填補了我的多選框,像這樣:

function addAction() 
{ 
    var actions = document.getElementById("actions"); 
    var action_list = document.getElementById("actions_list"); 
    var opt = document.createElement("option"); 
    for (var i=0; i<action_list.options.length; i++) 
    { 
     if (action_list.options[i].text == actions.options[actions.selectedIndex].text) 
      return; 
    } 
    action_list.options.add(opt); 
    opt.text = actions.options[actions.selectedIndex].text; 
    opt.value = actions.options[actions.selectedIndex].value; 
} 

function removeActions() 
{ 
    var action_list = document.getElementById("actions_list"); 
    for(i=action_list.options.length-1;i>=0;i--) 
    { 
     if (action_list.options[i].selected) 
      action_list.remove(i); 
    } 
} 

現在下面$layout_actions[]將返回空當我添加值從1選擇框通過上面的JS變成這1個:

echo '<select id="actions_list" name="layout_actions[]" multiple style="height: 128px; width: 300px;', (isset($context['layout_error']['no_actions']) ? ' border: 1px solid red;' : ''), '">'; 
          foreach($context['current_actions'] as $cur_action) 
           echo ' 
            <option value="', $cur_action, '">', $cur_action, '</option>'; 

     echo ' 
            </select> 

總之,my $_POST['layout_actions'] = ''(空字符串)。這裏發生了什麼???這應該是工作,不應該是?

請幫我... argg。我知道元素被添加,因爲我可以看到他們從1選擇框到多選框,當我點擊添加按鈕時,但是當我發佈表單時,layout_actions返回空白。

+1

多選框中的項目是否標記爲選中? – climbage 2010-04-14 18:20:31

+0

Opps,不,有沒有辦法讓他們沒有選擇他們?我明白你的意思,似乎當我選擇它時,它就在那裏。但是我需要把他們全部抓在裏面,不管他們是否被選中。這個怎麼做? – SoLoGHoST 2010-04-14 18:34:47

+0

將它們的副本放在隱藏的輸入中。 – bobince 2010-04-14 18:48:49

回答

0

我試着在簡單的HTML代碼,它是在請求

我看到,您使用單引號變量$環境中顯示的 layout_actions []數組....

所以我覺得這就是爲什麼它沒有選擇多個屬性選擇框

echo '<select id="actions_list" name="layout_actions[]" multiple style="height: 128px; width: 300px;', (isset($context['layout_error']['no_actions']) ? ' border: 1px solid red;' : ''), '">';