不同大小的表单字段的问题

时间:2013-03-25 18:04:45

标签: php html

我不确定如何使这项工作。我们必须使用PHP构建一个CSV文件。用于创建CSV文件的表单是此问题的主题。该计划涉及制作/模特/年。

第1页问了一个问题:'你想要多少品牌' 第2页提出了一个问题:'每个模型有多少个模型'

这是我到目前为止所做的: 的index.php:

<form action="import_page_1.php" method="post">
Number of Makes: <input type="text" name="num_makes" value="Enter a number"></input><hr>
<input type="submit" value="Next.." />

import_page_1.php:

<form action="import_page_2.php" method="post" />
<?php
$num_makes = (int) $_POST['num_makes'];
$count = 0;
$make_array = array();
    for ($i = 0; $i < $num_makes; $i++) {
        $count++;
        echo "Make $count: <input type='text' name='$make_array['make'] /><br />";
}
?>
<hr>
    <input type="submit" value="Next.." />
</form>

我不知道如何让$ make_array填充用户输入的每个内容。我不能像我在我的例子中所做的那样只是规范['make'],因为我得到的只是最后的结果。

所以也许我会以错误的方式解决这个问题,或者这可能是一个简单的解决方案,可以根据之前给出的字段数创建一个表单,然后创建一个基于“丰田”等产品的数组。我的测试案例是1:日产,2:丰田。在下一页上,我从$ _POST数组中得到的最后一个是“Toyota”,我假设是因为它覆盖了for循环中的每个'make'。

1 个答案:

答案 0 :(得分:1)

首先,我不是说英语的人,所以如果事情不明确我真的很抱歉,但我会尽力而为。

好的,如果我理解你的问题,你需要做的是一系列输入,以获得下一页中的所有值。

现在我知道了几个方法,我会告诉你我认为简单的方法,它是为(for())循环中的每个输入提供不同的名称,如下所示:

<?php
<form action="import_page_1.php" method="post">
Number of Makes: <input type="text" name="num_makes" value="Enter a number"></input><hr>
<input type="submit" value="Next.." />

import_page_1.php:

<form action="import_page_2.php" method="post" />
<?php
$num_makes = (int) $_POST['num_makes'];
        for ($i = 0; $i < $num_makes; $i++) {
            echo 'Make '.($i+1).': <input type="text" name="new_input"'.$i.' /><br />';
    }

?>
<input type="hidden" value="<?php echo $num_makes?>" name="total_new_inputs"/>

然后在下一页中,您可以通过使用另一个循环(for())来重新构造之前写入的输入名称来获取值,如下所示:

for ($i = 0; $i < $_POST['total_new_inputs']; $i++) {
        $value.$i = $_POST['new_input'.$i];
        echo $value.$i;

}

我希望你能得到这一切。