簡體   English   中英

多選列表

[英]multi-select list

我有多選列表框。 我在 on-change 事件中調用 function 並傳遞多選列表中的值。 當我這樣做時,我得到了第一個選定的值,而不是所有的多選值。

<select name="cat" multiple="multiple" class="main" onChange="javascript:get_list(this.value);">
    <option value="">--Select Category--</option>
    <?php
     ////////////////display category//////////////////
     $cat_details=mysql_query("SELECT category_id,category 
                                 FROM category_tb 
                             ORDER BY category");

     while($cat_data=@mysql_fetch_array($cat_details)){?>                        
        <option value="<?=$cat_data['category_id'];?>"<?
        if($_REQUEST['cat']==$cat_data['category_id']){?> selected="selected"<?php } ?>><?=$cat_data['category'];?></option>
    <? } ?>                        
</select>

如何將所有選定的值從多選傳遞到 ajax?

name="cat"更改為name="cat[]" 然后將所有選定的值存儲在一個數組中。

您需要將 select 字段的名稱設置為

cat[]

然后您將收到一個 cat 值數組

嘗試這樣的事情

this.options[this.selectedIndex].value

剛剛注意到它是多個 select,需要更復雜的 javascript

看這個例子http://www.mredkj.com/tutorials/tutorial004.html

您將必須遍歷所有選項並檢查“選定”屬性以獲取所有選定值。

<!-- html -->
<select name="cat" multiple="multiple" class="main" onChange="javascript:get_list(this);">

// Javascript
function get_list(sel) {
    var i = sel.options.length,
        opt = null,
        selValues = [];

    for ( ; i--; ) {
        opt = sel.options[i];
        if (opt.selected) {
            selValues.push(opt.value);
        }
    }

    console.log(selValues);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM