如何获得在PHP中select框的多个选定的值?

我有一个HTML表单,它有一个select列表框,您可以从中select多个值,因为它的多个属性设置为多个。 考虑表单方法是'GET'。 表单的html代码如下所示:

<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>&nbsp;</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>&nbsp;</td> <td><input type="submit" name="Submit" value="Submit" tabindex="2" /></td> </tr> </table> </form> </body> </html> 

我想在display.php页面的select列表框中显示选定的值。 那么如何使用$_GET[]数组在display.php页面上访问选定的值。

如果你希望PHP将$_GET['select2']作为一个选项数组,只需在方括号中添加select元素的名称,如下所示: <select name="select2[]" multiple …

然后你可以访问PHP脚本中的数组

 <?php header("Content-Type: text/plain"); foreach ($_GET['select2'] as $selectedOption) echo $selectedOption."\n"; 

$_GET可能被$_POST取代,取决于<form method="…"值。

更改:

 <select name="select2" ... 

至:

 <select name="select2[]" ... 

使用以下程序从select框中select多个值。

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/>"; } ?> 

您可以使用此代码从多个selectcombobox中检索值

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; } ?> 
  <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>&nbsp;</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>&nbsp;</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"; 

这将显示选定的值:

 <?php if ($_POST) { foreach($_POST['select2'] as $selected) { echo $selected."<br>"; } } ?> 
 // 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"); } ... ... } ?> 

我解决了我的问题与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; 

接下来,我通过发布该字段,并获得所有的string;-)我希望它会为更多的人工作。 谢谢大家。

 foreach ($_POST["select2"] as $selectedOption) { echo $selectedOption."\n"; } 

你也可以这样做。 它为我工作。

 <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);