我有多选列表框。我在on-change事件中调用一个函数,我从多选列表中传递值。当我这样做时,我得到第一个选择的谷值而不是所有多选的值。
<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>
如何将所有选定值从multi-select传递给ajax?
答案 0 :(得分:0)
将name="cat"
更改为name="cat[]"
。
然后,所有选定的值将存储在一个数组中。
答案 1 :(得分:0)
您需要将选择字段的名称设置为
cat[]
然后您将收到一个值数组的猫
答案 2 :(得分:0)
尝试这样的事情
this.options[this.selectedIndex].value
只是注意到它是一个多选,需要更复杂的javascript
答案 3 :(得分:0)
您必须遍历所有选项并检查“已选择”属性以获取所有选定的值。
<!-- 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);
}