如何区分具有相同名称的两个多选列表

时间:2013-03-25 19:44:07

标签: php html forms post

对于我正在构建的系统,我需要查看第一个列表中的哪些选项(带有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'选项。现在我看不出哪个来自第一个列表,哪个来自第二个列表。当然我知道我也可以将第二个列表的名称与第一个列表的名称不同,但这是有充分理由我想这样做..

4 个答案:

答案 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:​​)