繁体   English   中英

如何从多选下拉菜单中获取值并将其与POST一起发送?

[英]How to grab values from a multiple select dropdown menu and send them along with POST?

我有要添加到表单中的多选下拉菜单

<form>
...
    <select id="example2" multiple="multiple">
        <div id="otherChoices">
            <optgroup label="Academic" class="blah">
                <option value="Engineering" class="blah">Engineering</option>
                <option value="Humanities">Humanities</option>
                <option value="Life_Sciences">Life Sciences</option>
                <option value="Social Sciences_Sciences">Social Sciences</option>
            </optgroup>
            <optgroup label="Clubs">
                <option value="Event">Event </option>
                <option value="Meeting">Meeting</option>
                <option value="Performance">Performance</option>
            </optgroup>
            <optgroup label="Personal">
                <option value="Discussion">Discussion</option>
                <option value="Event">Event</option>
                <option value="Food">Food</option>
                <option value="Hangout">Hangout</option>
                <option value="Trip">Trip</option>
            </optgroup>
        </div>
    </select>
</form>

但是我不确定这是什么类型的输入形式(这是引导程序创建的形式,但不是有效的输入类型),因此我不确定究竟如何通过发布请求发送参数。 目前,我正在使用jquery来获取选定的值并填写隐藏表格。 有更好的办法吗?

您在HTML中犯了一些错误:这是更正的版本:

<form action="test2.php" method="post">
    <select name="example2[]" id="example2" multiple="multiple" >
        <div id="otherChoices" name="hello">
            <optgroup label="Academic" class="blah">
                <option value="Engineering" class="blah">Engineering</option>
                <option value="Humanities">Humanities</option>
                <option value="Life_Sciences">Life Sciences</option>
                <option value="Social Sciences_Sciences">Social Sciences</option>
            </optgroup>
            <optgroup label="Clubs">
                <option value="Event">Event </option>
                <option value="Meeting">Meeting</option>
                <option value="Performance">Performance</option>
            </optgroup>
            <optgroup label="Personal">
                <option value="Discussion">Discussion</option>
                <option value="Event">Event</option>
                <option value="Food">Food</option>
                <option value="Hangout">Hangout</option>
                <option value="Trip">Trip</option>
            </optgroup>
        </div>
    </select>
    <button type="submit">Submit</button>
</form>

编辑:这是我更正:

  1. 我在方括号中为选择添加了一个名称值,以显示其数组
  2. 我在表单中添加了一种方法类型:method =“ post”
  3. 提交按钮

然后,您可以像这样访问各个项目:

echo $_POST["example2"][0];

编辑:对不起,我意识到这是Node.js,那是PHP的。 请参阅此链接以获取如何在节点js中获取post变量:

您如何在Node.js中提取POST数据?

提交表单时,它会将数组传递给在表单的action属性中指定的下一页。 如果未设置,它将提交到当前URL。

默认情况下,除非将method属性设置为post否则表单将使用GET提交。

因此,将<form>标记更改为以下内容:

<form method="post" action="test.php">

并给您的select一个name ,例如name="test_select"

然后您的test.php可能如下所示:

<?php
  print_r($_POST);

(不需要?>结束标记)

这将打印$_POST数组,您将看到多个选择如何工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM