2016-09-17 82 views
0

我正在创建一个PHP文件,我想要做的一件事是拥有一个数组(示例1)。据我所知,Array就像一个列表,我也想在列表中输入项目(例2)。但数组中的项目数量需要通过一个数字确定,通过HTML表单输入(例3)。如何根据html表单输入设置数组中的项目数量?

例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个框用于输入我们所选颜色的名称:红色,蓝色,黄色。 在最后一页,我们显示了我们三种颜色的列表:红色,蓝色和黄色。

希望这会有所帮助。

+0

格式不好看。 :| –

+0

修正了它!对于那个很抱歉。 –

+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.'); 
} 

我们可以增加一些安全性(如检查它是否为空等),但我只是添加了基本的东西。

+0

我改变了文件2.php上的第3 + 4行退出('不是整数'); }'通过删除这个块。它允许我通过键入数字,并创建它。 –

+0

这很好,我们在那里,但是我的错。我不知道为什么我说上面的数组,我希望他们的第3页输入到列表中。 所以行'

  • '从我的例子三我确实需要。所以**第2页**让我们编写_3_颜色^例如^现在在**第3页**我们希望_3_线的这个'
  • '示例。那有意义吗? –

    +0

    @WilliamBachynsky然后你可以这样写:'foreach($ colors as $ color => $ value){echo'

  • '。$ value。'
  • '; }这将打印出所有颜色的列表。 –

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

    然后在finished.php

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

    请参阅主页面中的编辑。 –

    相关问题