如何正确地将数组从select表单传递到另一个PHP页面
让我进一步解释。在我的第一个php页面上有一个select表单(让我们先调用这个页面)。我有一个提交按钮。我在第二个页面(让我们用$u POST调用此页面的sec.php)捕获数组,然后将其设置为php变量。然而,我无法将其打印出来。下面是我在first.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
<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>