73

如何在表单中发布多项选择的值?当我点击提交时,没有发布任何选定的值。

<form id="form" action="" method="post">
    <div>
        <select id="inscompSelected" multiple="multiple" class="lstSelected">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>                
        </select>
        <input type="submit" value="submit">
    </div>
</form>
4

2 回答 2

139

您需要添加一个name属性。

由于这是一个多选,在 HTTP 级别,客户端只是发送多个具有相同名称的名称/值对,如果您使用带有method="GET": someurl?something=1&something=2&something=3.

对于 PHP、Ruby 和其他一些库/框架,您需要[]在名称末尾添加方括号 ( )。框架将解析该字符串并以某种易于使用的格式呈现它,例如数组。

除了手动解析请求之外,没有与语言/框架/库无关的方式来访问多个值,因为它们都有不同的 API

对于 PHP,您可以使用:

<select name="something[]" id="inscompSelected" multiple="multiple" class="lstSelected">
于 2012-07-23T16:34:44.673 回答
0

试试这个:这里 select 是你的选择元素

let select = document.getElementsByClassName('lstSelected')[0],
    options = select.options,
    len = options.length,
    data='',
    i=0;
while (i<len){
    if (options[i].selected)
        data+= "&" + select.name + '=' + options[i].value;
    i++;
}
return data;

数据形式为查询字符串 iename=value&name=anotherValue

于 2018-09-17T17:41:12.297 回答