Comment obtenir plusieurs valeurs sélectionnées de select box en php?

J'ai un formulaire html qui a une zone de liste de sélection à partir de laquelle vous pouvez sélectionner plusieurs valeurs car sa propriété multiple est définie sur multiple. Considérez la méthode de formulaire est 'GET'. Le code html du formulaire est le suivant:

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

Je veux afficher les valeurs sélectionnées dans la zone de liste de sélection à l'affichage.page php. Alors, comment les valeurs sélectionnées sont-elles accessibles sur l'affichage.page php en utilisant $_GET[] Tableau.

209
demandé sur Brian Tompsett - 汤莱恩 2010-03-09 10:27:26

10 réponses

Si vous voulez que PHP traite $_GET['select2'] comme un tableau d'options, ajoutez simplement des crochets au nom de l'élément select comme ceci: <select name="select2[]" multiple …

Ensuite, vous pouvez accéder au tableau dans votre script PHP

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

foreach ($_GET['select2'] as $selectedOption)
    echo $selectedOption."\n";

$_GET peut être remplacé par $_POST en fonction de la <form method="…" valeur.

355
répondu Alex Jasmin 2015-09-13 19:15:09

Changement:

<select name="select2" ...

À:

<select name="select2[]" ...
157
répondu Coufu 2010-03-09 07:54:11

Utilisez le programme suivant pour sélectionner les multiples valeurs de la zone de sélection.

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_

?>

Valeur.php

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

?>
32
répondu rekha_sri 2010-03-09 08:31:31

Vous pouvez utiliser ce code pour récupérer des valeurs à partir de la liste déroulante de sélection multiple

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;
}
?>
30
répondu Abdul Kalam Azad 2013-10-07 06:22:06
    <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>

Vous pouvez l'itérer directement comme ceci

foreach ($_GET['select2'] as $value)
    echo $value."\n";

, Ou vous pouvez le faire comme ceci

$selectvalue=$_GET['select2'];
foreach ($selectvalue as $value)
    echo $value."\n"; 
6
répondu Vivek 2013-12-21 06:10:06

Cela affichera les valeurs sélectionnées:

<?php

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

?>
5
répondu ahmed 2013-06-05 11:13:03
// 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"); 
         } 
         ...

         ...
    }
?>
4
répondu Rynika 2013-06-18 20:25:08

Je résous mon problème avec javascript + HTML. Je vérifie d'abord les options sélectionnées et les enregistre dans un champ caché de mon formulaire:

for(i=0; i < form.select.options.length; i++)
   if (form.select.options[i].selected)
    form.hidden.value += form.select.options[i].value;

Ensuite, je reçois par la poste ce champ et obtenir toute la chaîne ;-) J'espère que ce sera du travail pour quelqu'un de plus. Merci à tous.

0
répondu Drako 2013-04-16 19:25:41
foreach ($_POST["select2"] as $selectedOption)
{    
    echo $selectedOption."\n";  
}
0
répondu SwR 2015-08-19 17:40:33

Vous pourriez faire comme ça aussi. Il a travaillé pour moi.

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

Ensuite, prenez la sélection multiple du code suivant PHP ci-dessous. Il imprime les valeurs multiples sélectionnées en conséquence.

$shift=$_POST['selectDuration'];

print_r($shift);
0
répondu Dulith De Costa 2016-08-16 04:54:50