Как получить несколько выбранных значений поля select в php?

У меня есть html-форма, в которой есть окно выбора, из которого вы можете выбрать несколько значений, потому что его множественное свойство установлено в несколько. Рассмотрим метод формы: «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. Итак, как выбранные значения доступны на странице display.php с использованием массива $_GET[] .

Если вы хотите, чтобы 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[]" ... 

Используйте следующую программу для выбора нескольких значений из окна выбора.

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

Вы можете использовать этот код для извлечения значений из множественного списка со списком

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; 

Затем я получаю по почте это поле и получаю всю строку 😉 Я надеюсь, что это будет работать для кого-то еще. Спасибо всем.

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