<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="get" action="display.php">
<table width="300" border="1">
<tr>
<td><label>Multiple Selection </label> </td>
<td><select name="select2" size="3" multiple="multiple" tabindex="1">
<option value="11">eleven</option>
<option value="12">twelve</option>
<option value="13">thirette</option>
<option value="14">fourteen</option>
<option value="15">fifteen</option>
<option value="16">sixteen</option>
<option value="17">seventeen</option>
<option value="18">eighteen</option>
<option value="19">nineteen</option>
<option value="20">twenty</option>
</select>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Submit" tabindex="2" /></td>
</tr>
</table>
</form>
</body>
</html>
我想在display.php页面的选择列表框中显示所选值。那么如何使用
$_GET[]
数组在display.php页面上访问选定的值。#1 楼
如果您想让PHP将$_GET['select2']
视为选项数组,只需在方括号中将select元素的名称添加到方括号中,如下所示: br /> <?php
header("Content-Type: text/plain");
foreach ($_GET['select2'] as $selectedOption)
echo $selectedOption."\n";
根据
<select name="select2[]" multiple …
的值,$_GET
可以用$_POST
代替。评论
对我来说,如果没有选择多选,浏览器不会发送post / get-parameter。你怎么能强制有一个空数组呢?
– emfi
15年3月11日在13:16
我必须使用$ _POST ['select2']而不是$ _GET ['select2']
–凯尔·布莱恩汀(Kyle Bridenstine)
2015年4月21日在5:05
这是一个旧答案,但这是一个误导性答案! (name =“ select2 []”)是正确的,因为@Coufu回答了!
–meYnot
16年1月9日在16:41
@emfi如果要发送参数,则必须有一个值。如果您可以允许列表中包含默认选项,则可以在标签中添加“ selected”(即
#2 楼
更改:<select name="select2" ...
收件人:
<select name="select2[]" ...
评论
在某些情况下,为什么这仍然行不通?我没有获得成功。
–迈克·科门迪(Mike Kormendy)
16年6月26日在15:26
#3 楼
使用以下程序从选择框中选择多个值。multi.php
<?php
print <<<_HTML_
<html>
<body>
<form method="post" action="value.php">
<select name="flower[ ]" multiple>
<option value="flower">FLOWER</option>
<option value="rose">ROSE</option>
<option value="lilly">LILLY</option>
<option value="jasmine">JASMINE</option>
<option value="lotus">LOTUS</option>
<option value="tulips">TULIPS</option>
</select>
<input type="submit" name="submit" value=Submit>
</form>
</body>
</html>
_HTML_
?>
value.php
<?php
foreach ($_POST['flower'] as $names)
{
print "You are selected $names<br/>";
}
?>
#4 楼
您可以使用此代码从多个选择组合框中检索值。HTML:
<form action="c3.php" method="post">
<select name="ary[]" multiple="multiple">
<option value="Option 1" >Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
<option value="Option 5">Option 5</option>
</select>
<input type="submit">
</form>
PHP:
<?php
$values = $_POST['ary'];
foreach ($values as $a){
echo $a;
}
?>
#5 楼
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="get" action="display.php">
<table width="300" border="1">
<tr>
<td><label>Multiple Selection </label> </td>
<td><select name="select2[]" size="3" multiple="multiple" tabindex="1">
<option value="11">eleven</option>
<option value="12">twelve</option>
<option value="13">thirette</option>
<option value="14">fourteen</option>
<option value="15">fifteen</option>
<option value="16">sixteen</option>
<option value="17">seventeen</option>
<option value="18">eighteen</option>
<option value="19">nineteen</option>
<option value="20">twenty</option>
</select>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Submit" tabindex="2" /></td>
</tr>
</table>
</form>
</body>
</html>
您可以像这样直接对其进行迭代
foreach ($_GET['select2'] as $value)
echo $value."\n";
,也可以像这样
$selectvalue=$_GET['select2'];
foreach ($selectvalue as $value)
echo $value."\n";
#6 楼
这将显示选定的值:<?php
if ($_POST) {
foreach($_POST['select2'] as $selected) {
echo $selected."<br>";
}
}
?>
评论
这有多个缺陷:1)OP使用的是GET方法; 2)它缺少将方括号添加到表单元素名称(例如name =“ select2 []”)的最重要步骤。
–查理
15年3月18日在15:50
#7 楼
// CHANGE name="select2" TO name="select2[]" THEN
<?php
$mySelection = $_GET['select2'];
$nSelection = count($MySelection);
for($i=0; $i < $nSelection; $i++)
{
$numberVal = $MySelection[$i];
if ($numberVal == "11"){
echo("Eleven");
}
else if ($numberVal == "12"){
echo("Twelve");
}
...
...
}
?>
#8 楼
您也可以这样做。<form action="ResultsDulith.php" id="intermediate" name="inputMachine[]" multiple="multiple" method="post">
<select id="selectDuration" name="selectDuration[]" multiple="multiple">
<option value="1 WEEK" >Last 1 Week</option>
<option value="2 WEEK" >Last 2 Week </option>
<option value="3 WEEK" >Last 3 Week</option>
<option value="4 WEEK" >Last 4 Week</option>
<option value="5 WEEK" >Last 5 Week</option>
<option value="6 WEEK" >Last 6 Week</option>
</select>
<input type="submit"/>
</form>
然后从下面的PHP代码中进行多项选择。它会相应地打印选定的多个值。
$shift=$_POST['selectDuration'];
print_r($shift);
#9 楼
我用javascript + HTML解决了我的问题。首先,我检查选定的选项并将其保存在表单的隐藏字段中:for(i=0; i < form.select.options.length; i++)
if (form.select.options[i].selected)
form.hidden.value += form.select.options[i].value;
接下来,我通过发布该字段并获取所有字符串;-)
我希望它会对更多人有用。感谢所有人。
评论
这有多个缺陷:1)取决于可用的JavaScript; 2)在将值连接到单个字符串中时不会将值分开,因此以后无法将字符串拆分回值。
–查理
15年3月18日在15:43
这个答案给了我必要的指导。谢谢。
–奥列格·波波夫(Oleg Popov)
17年7月18日在3:38
#10 楼
foreach ($_POST["select2"] as $selectedOption)
{
echo $selectedOption."\n";
}
评论
是否允许重命名select2?还是其他人控制表格?