对于我正在构建的系统,我需要查看第一个列表中的哪些选项(带有POST请求)以及第二个列表中的选项。
<form method="post">
<select name="cars[]" multiple>
<option selected>test</option>
<option selected>test2</option>
<option>test3</option>
<option>test4</option>
</select>
<select name="cars[]" multiple>
<option>hai</option>
<option>hai2</option>
<option selected>hai3</option>
<option selected>hai4</option>
</select>
<input type="submit">
</form>
现在他们就这样进来了:
Array
(
[cars] => Array
(
[0] => test
[1] => test2
[2] => hai3
[3] => hai4
)
)
实际上我想检索除'haiX'选项之外的'testX'选项。现在我看不出哪个来自第一个列表,哪个来自第二个列表。当然我知道我也可以将第二个列表的名称与第一个列表的名称不同,但这是有充分理由我想这样做..
答案 0 :(得分:1)
这可以通过为每个选择列表使用隐藏字段(输入)来完成。您可以根据需要命名它们,以及如何知道。
答案 1 :(得分:1)
通过在表单中创建多维数组来划分类别:
<form method="post">
<select name="cars[0][]" multiple>
<option selected>test</option>
<option selected>test2</option>
<option>test3</option>
<option>test4</option>
</select>
<select name="cars[1][]" multiple>
<option>hai</option>
<option>hai2</option>
<option selected>hai3</option>
<option selected>hai4</option>
</select>
<input type="submit">
</form>
然后像这样阅读:$ _POST ['cars'] [0]为第一组,$ _POST ['cars'] [1]为第二组
答案 2 :(得分:0)
您应该能够像这样检索它们:
$_POST['cars'][0]
指的是“测试”集
$_POST['cars'][1]
指的是“hai”集
答案 3 :(得分:0)
我做到了:
<?php
if (isset($_POST['cars']))
{
$test = array();
$hai = array();
$lista = $_POST['cars'];
foreach ($lista as $key ) {
if (substr($key,0,1)=="t")
{
$test[] = $key;
}
else
{
$hai[] = $key;
}
}
}
var_dump($test);
var_dump($hai);
?>
<form method="post">
<select name="cars[]" multiple>
<option selected>test</option>
<option selected>test2</option>
<option>test3</option>
<option>test4</option>
</select>
<select name="cars[]" multiple>
<option>hai</option>
<option>hai2</option>
<option selected>hai3</option>
<option selected>hai4</option>
</select>
<input type="submit">
</form>
在localhost上测试。
Saludos:)