从多个选择中发布值

use*_*949 65 html html-select

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

<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>
Run Code Online (Sandbox Code Playgroud)

iam*_*eed 118

您需要添加name属性.

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

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

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

对于PHP,您可以使用:

<select name="something[]" id="inscompSelected" multiple="multiple" class="lstSelected">
Run Code Online (Sandbox Code Playgroud)

  • 在名称的末尾添加`[]`是一个PHP习惯用法,它不是HTML所必需的,并且它不被其他语言/框架使用. (58认同)
  • @Ejay:在HTTP级别,客户端只发送多个具有相同名称的名称/值对,如果您使用带有`method ="GET"的表单,您可以自己观察:``someurl?something = 1&something = 2&something = 3`.您正在使用的库/框架只是解析该字符串并以一些易于使用的格式呈现它.除了手动解析请求之外,没有语言/框架/库无关的方式来访问多个值,因为它们都有不同的API. (8认同)
  • 由于它是一个多重选择,你希望名称以`[]`结尾(以便它作为一个数组发布). (6认同)
  • 我还要补充说,如果你使用像PHP这样的东西,你总是可以转出`$ _POST`来查看提交后保存的变量. (2认同)
  • 同意@Sergey.所以问题仍然存在."在服务器端访问多个选定值的语言无关的方式是什么?" (2认同)
  • @rocketHazmat 解决方案“名称以 [] 结尾”对我有用(php 环境)。谢谢 ! (2认同)