0

我不知道如何使这项工作。我们必须使用 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'],因为那样我得到的只是最后一个结果。

因此,也许我的做法是错误的,或者这是一些简单的解决方案,可以根据先前给出的字段数量创建表单,然后根据“Toyota”等品牌创建数组。我的测试用例是 1:日产,2:丰田。在下一页上,我从 $_POST 数组中得到的只是最后一个输入的“Toyota”,我假设是因为它覆盖了 for 循环中的每个“make”。

4

1 回答 1

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;

}

我希望你得到了一切。

于 2013-03-25T18:37:59.867 回答