如何正确地将数组从select表单传递到另一个PHP页面

如何正确地将数组从select表单传递到另一个PHP页面,php,html,forms,Php,Html,Forms,让我进一步解释。在我的第一个php页面上有一个select表单(让我们先调用这个页面)。我有一个提交按钮。我在第二个页面(让我们用$u POST调用此页面的sec.php)捕获数组,然后将其设置为php变量。然而,我无法将其打印出来。下面是我在first.php上的代码/标记 <label>Product:</label> <select name="arr[]"> <option value="Mobile">Mobile

让我进一步解释。在我的第一个php页面上有一个select表单(让我们先调用这个页面)。我有一个提交按钮。我在第二个页面(让我们用$u POST调用此页面的sec.php)捕获数组,然后将其设置为php变量。然而,我无法将其打印出来。下面是我在first.php上的代码/标记

<label>Product:</label>
    <select name="arr[]">
        <option value="Mobile">Mobile</option>
        <option value="Social">Social</option>
        <option value="Online">Online</option>
    </select>
产品:
可移动的
社会的
在线 的
注意=我知道我不需要为此设置数组。但我想保持这种状态

下面是我在sec.php上的代码:

<?php
    $arr= $_POST['arr'];
?>

我希望它打印在此HTML表中:

<tr>
    <td width="200"> <?php echo $url[0]; ?></td>
    <td width="200"> <?php echo $sMonth[0] . "/" . $sDay[0] . "/" . $sYear[0]; ?></td>
    <td width="200"> <?php echo $eMonth[0] . "/" . $eDay[0] . "/" . $eYear[0]; ?></td>
    <td> <?php echo $tBudget[0]; ?></td>
    <td> <?php echo $dBudget[0]; ?></td>
    <td> <?php echo $model[0]; ?></td>
    <td> <?php echo $bid[0]; ?></td>
    <td> <?php echo $target[0]; ?></td>
    <td> <?php echo $status[0]; ?></td>
    <td width="200"> <?php echo $arr[0]; ?></td>
    <td> <?php echo $tUnits[0]; ?></td>
</tr>

注意=所有其他变量和值都可以正常打印(使用与$arr变量相同的方法和概念),但只有$arr变量无法打印)

我做错了什么?

改变

<select name="arr[]">
...
<td width="200"> <?php echo $arr[0]; ?></td>

...


...

当您有一个多个选择选项时,您将只想使用
数组命名
,实际上,它可能是这样的:

   <select name="arr[]" multiple>
      <option value="Mobile">Mobile</option>
      <option value="Social">Social</option>
      <option value="Online">Online</option>
   </select>

可移动的
社会的
在线 的

您需要使用for循环来获取数组中的值。请检查此项


什么是
var\u转储($arr)显示?如何
var\u dump($\u POST)?var_dump($arr)是这样说的:dasarray(1){[0]=>string(6)“Mobile”}你能详细说明一下吗?它不是多重的。用户选择一个选项,该选项将被放入数组。@user3108505确切地说,因为您只传递一个值,所以您不需要将select命名为
arr[]
,您只需要在php中这样读取:
$arr
而不是
arr[0]
,因为它不是数组。阅读我的最新答案。我的其他变量是用相同的概念和实现以相同的方式实现的。它们都是印刷品,除了arr@user3108505您的选择是否包含在表单的
标记中?是的。我在其他变量/数组中使用的其他select标记也是如此。但是使用“multiple”会导致插入所有3个值。我不想那样。我只想将所选选项插入第一个元素位置。如果你不使用循环,不要使用倍数,倍数让用户选择多个值,这就是为什么你要选择arr[]作为(数组),打印数组值的最佳方式=循环,在你的代码中,你只需打印arr[0]的第一个索引,让我知道为什么?!!
   <select name="arr[]" multiple>
      <option value="Mobile">Mobile</option>
      <option value="Social">Social</option>
      <option value="Online">Online</option>
   </select>