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

时间:2013-12-17 19:53:43

标签: php html forms

让我进一步解释。我在我的第一个php页面上有一个选择表单(让我们先调用这个页面.php)。我有一个提交按钮。我正在使用$ _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>

注意=所有其他变量和值只打印FINE(使用与$ arr变量相同的方法和概念)但只有$ arr变量无法打印)。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

更改

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

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

当您拥有多个选择选项

时,想要使用array naming

答案 1 :(得分:0)

实际上,它可能是这样的:

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

答案 2 :(得分:0)

你需要使用for循环来获取数组中的值,请检查

<form action="<?php echo @$_SERVER['PHP_SELF'];?>" method="POST"> 
            <select name="arr[]" multiple>
                <option>Radio</option>
                <option>TV</option>
                <option>Keyboard</option>
                <option>DVD Player</option>
                <option>Screen</option>
            </select>
            <input type="submit" value="GO!">
        </form>
<?php
$data=@$_POST['arr'];
$len = count($data); // getting length of ur array that u need to condition ur loop
for($y=0;$y<$len;$y++){
    echo "$data[$y]"."<br />";
}
?>