如何根据html表单输入设置数组中的项目数?

时间:2016-09-17 11:11:46

标签: php html arrays forms

我正在创建一个PHP文件,我想做的一件事是有一个数组(例1)。根据我的理解,Array就像一个列表,我想在列表中输入项目(例2)。但是数组中的项目数需要通过HTML表格输入的数字来确定(例3)。

示例1:               

<?php
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
?>

</body>
</html>
</code>    

示例2:

<!DOCTYPE html>
<html>
<body>

<?php
$a=array("red","green");
array_push($a,"$_POST["color3"]","$_POST["color4"]");
print_r($a);
?>

</body>
</html>

示例3。

<ol>
<form action="finished.php" method="post">
<li><input type="text" name="color3"></li>
<li><input type="text" name="color4"></li>
</form>
</ol>

编辑: 我希望这一切都格式正确,你理解这个问题。 重申:第一页是空白的,只有一个表格;单输入框,您可以在其中键入任意数字(X)。 第二页有一遍又一遍重复的相同行(取决于上一页的数字X),它的行是: <li><input type="text" name="color Y"></li>
Y应无限地从1开始计数直到达到X. 最后一页将所有内容打印在一个列表中(数组?)。

例如:在第一页,我们输入数字3。 在第二页,我们有3个框用于输入我们选择的颜色的名称:红色,蓝色,黄色。 在最后一页上,我们显示了三种颜色的列表:红色,蓝色和黄色。

希望这有帮助。

2 个答案:

答案 0 :(得分:2)

 $_POST['data'];

  print_r($_POST);//print out the whole post
  print_r($_POST['data']); //print out only the data array

然后在finished.php中

if

答案 1 :(得分:1)

我想我得到了你想要的东西(不止一次阅读之后)。如果我理解正确,请告诉我。假设您正在使用3个不同的文件(正如您在问题中所写的那样)。

file1.php (一个包含1个输入和1个提交按钮的简单表单):

<form action="file2.php" method="post">
    <input type="text" name="amount" placeholder="The amount of elements">
    <input type="submit" value="Enter">
</form>

file2.php (检查是否$_POST且值是整数):

if (!empty($_POST['amount'])) {
    if (!is_int($_POST['amount'])) {
        exit('Not an integer');
    }
    ?>
    <form action="file3.php" method="post">
    <?php
    for ($i = 0; $i < $_POST['amount']; $i++) {
        echo '<input type="text" name="colors[]" placeholder="Enter color name"><br>';
    }
    ?>
    <input type="submit" value="Done">
    </form>
    <?php
} else {
    exit('Only $_POST method is allowed.');
}

file3.php (获取所有结果并将数组存储在变量中):

if (!empty($_POST)) {
    $colors = $_POST['colors'];
    foreach ($colors as $color => $value) {
        echo '<li>'.$value.'</li>';
    }
    exit;
} else {
    exit('Only $_POST method is allowed.');
}

我们可以添加更多安全性(比如检查它是否为空等),但我只是添加基本内容。