我有这种类型的多选下拉菜单,我想添加到我的表单中
<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>
但我不确定这是什么类型的输入表单(这是一个引导程序创建的表单,但不是有效的输入类型),所以我不确定如何通过post请求发送参数。目前,我正在使用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>
编辑:这是我纠正的:
- 我用方括号在select中添加了一个名称值,以显示它的数组
- 我在表单中添加了一个方法类型:method="post"
- "提交"按钮
然后,您可以访问这样的单个项目:
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
数组,您将看到多重选择是如何工作的。