如何在php中获取选择框的多个选定值?

Par*_*nak 232 html php combobox html-table drop-down-menu

我有一个html表单,其中有一个选择列表框,您可以从中选择多个值,因为它的multiple属性设置为multiple.考虑形式方法是'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>
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*min 386

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

然后,您可以在PHP脚本中访问该数组

<?php
header("Content-Type: text/plain");

foreach ($_GET['select2'] as $selectedOption)
    echo $selectedOption."\n";
Run Code Online (Sandbox Code Playgroud)

$_GET$_POST取决于<form method="…"价值,可以代替.

  • 这是一个旧的答案,但这是一个误导性的答案!(name="select2[]") 是正确的@Coufu 回答! (3认同)

小智 177

更改:

<select name="select2" ...
Run Code Online (Sandbox Code Playgroud)

至:

<select name="select2[]" ...
Run Code Online (Sandbox Code Playgroud)


rek*_*sri 36

使用以下程序从选择框中选择多个值.

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_

?>
Run Code Online (Sandbox Code Playgroud)

value.php

<?php
foreach ($_POST['flower'] as $names)
{
        print "You are selected $names<br/>";
}

?>
Run Code Online (Sandbox Code Playgroud)


小智 35

您可以使用此代码从多个选择组合框中检索值

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>
Run Code Online (Sandbox Code Playgroud)

PHP:

<?php
$values = $_POST['ary'];

foreach ($values as $a){
    echo $a;
}
?>
Run Code Online (Sandbox Code Playgroud)


Viv*_*vek 7

    <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>
Run Code Online (Sandbox Code Playgroud)

您可以像这样直接迭代它

foreach ($_GET['select2'] as $value)
    echo $value."\n";
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做

$selectvalue=$_GET['select2'];
foreach ($selectvalue as $value)
    echo $value."\n"; 
Run Code Online (Sandbox Code Playgroud)


小智 5

这将显示所选值:

<?php

    if ($_POST) { 
        foreach($_POST['select2'] as $selected) {
            echo $selected."<br>";
        }
    }

?>
Run Code Online (Sandbox Code Playgroud)

  • 这有多个缺陷:1)OP使用的是GET方法;2)它缺少将方括号添加到表单元素名称的最重要步骤,例如`name =“ select2 []”`。 (2认同)

Ryn*_*ika 5

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

         ...
    }
?>
Run Code Online (Sandbox Code Playgroud)