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érons que 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 liste de sélection sur la page display.php. Alors, comment accède-t-on aux valeurs sélectionnées sur la page display.php en utilisant le tableau $_GET[]
?.
Si vous voulez que PHP traite $_GET['select2']
comme un tableau d'options, ajoutez simplement des crochets au nom de l'élément select element 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 valeur <form method="…"
.
Changement:
<select name="select2" ...
À:
<select name="select2[]" ...
Utilisez le programme suivant pour sélectionner plusieurs valeurs dans 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 plusieurs boîtes à choix
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 ça
foreach ($_GET['select2'] as $value)
echo $value."\n";
ou tu peux le faire comme ça
$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");
}
...
...
}
?>
Vous pouvez faire comme ça aussi. Cela a fonctionné 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 de la suite PHP code ci-dessous. Il imprime les valeurs multiples sélectionnées en conséquence.
$shift=$_POST['selectDuration'];
print_r($shift);
Je résous mon problème avec javascript + HTML. Premièrement, je vérifie les options sélectionnées et les enregistre dans un champ masqué 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 reçois toute la chaîne ;-) J'espère que ça va être du travail pour quelqu'un de plus. Merci à tous.
foreach ($_POST["select2"] as $selectedOption)
{
echo $selectedOption."\n";
}