繁体   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