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配列から取得したのは、forループの各「make」を上書きしているために「Toyota」に入力された最後の配列だけでした。

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 に答える