そのため、ページ 2 に動的テーブルがあり、ユーザーは必要な数のエントリを追加できます。3ページを送信した後、すべての情報がうまく取得されています。問題は、配列を介した for ループの繰り返しが機能していないことです。コードは次のとおりです。
for($i = 0; $i < sizeof($_POST["fname_new"]); $i++) {
$fname_new = $_POST["fname_new"][i];
$lname_new = $_POST["lname_new"][i];
$phone_new = $_POST["phone_new"][i];
$email_new = $_POST["email_new"][i];
$ethnicity_new = $_POST["ethnicity_new"][i];
$stmt = $link -> prepare("INSERT INTO Conference (`First Name`, `Last Name`, `Phone`, `Email`, `Ethnicity`) VALUES (:first_new, :last_new, :phone_new, :email_new, :ethnicity_new)");
$stmt->bindParam(':first_new', $fname_new);
$stmt->bindParam(':last_new', $lname_new);
$stmt->bindParam(':phone_new', $phone_new);
$stmt->bindParam(':email_new', $email_new);
$stmt->bindParam(':ethnicity_new', $ethnicity_new);
$stmt->execute();
}
だから私がするとき
echo sizeof($_POST["fname_new"]);
正しい数が表示されるので、ユーザーが 2 ページ目に追加した行が 3 行ある場合、エコーされる値は 3 になるはずです。私がする時:
echo $_POST["fname_new"][0];
次に、最初の行から最初の名前を適切に指定します。範囲内にある限り、0 を任意の数値に置き換えることができ、それは正しいものです。しかし、何らかの理由で私がそうするとき
echo $_POST["fname_new"][i];
何も印刷されません。この for ループが機能しない理由がわかりません。論理的には正しいです。何か案は?