4

对于我正在构建的系统,我需要查看第一个列表中的哪些选项(带有 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

4 回答 4

1

这可以通过为每个选择列表使用隐藏字段(输入)来完成。您可以根据需要命名它们,这就是如何知道的。

于 2013-03-25T19:58:27.057 回答
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]

于 2013-03-25T20:07:26.047 回答
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>

在本地主机上测试。

萨卢多斯 :)

于 2013-03-25T20:05:59.590 回答
0

您应该能够像这样检索它们:

$_POST['cars'][0]指的是“测试”集

$_POST['cars'][1]指“hai”集

于 2013-03-25T19:49:12.840 回答