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> </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>
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.
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.
Changement:
<select name="select2" ...
À:
<select name="select2[]" ...
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/>";
}
?>
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;
}
?>
<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>
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";
Cela affichera les valeurs sélectionnées:
<?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");
}
...
...
}
?>
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.
foreach ($_POST["select2"] as $selectedOption)
{
echo $selectedOption."\n";
}
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);