0

選択したチェックボックスごとにテキスト値フィールドを次のページに渡そうとしていますが、最後のテキストフィールド値しか取得していません。例:

checkbox textfield
selected ABCD
selected ABCDE

私は毎回ABCDEを取り戻すだけです

page1.php

echo "<td width='10px'><input name='question[$rowid][]' type='checkbox' value='1' /></td>";
echo "<td width='230px'><input name='newname' type='text' value='$certn'/></td>";

page2.php

foreach ($_POST['question'] as $key => $ans) {
$nn = $_POST['newname'];
echo $key . $nn;
echo "</br>";
}

ヘルプは大歓迎です

4

2 に答える 2

2

ここで何をしているのかを正確に理解するのは少し難しいですが、あなたの声明I'm only getting the last text fields valueはあなたの問題を示していると思います.同じ名前のフィールドが複数あります. これを行い、それらを配列 ( []) にしないと、ページの最後の値のみが取得されます。

私はあなたがこのようなものがもっと欲しいと思います:

ページ1:

echo "<td width='10px'><input name='question[$rowid]' type='checkbox' value='1' /></td>";
echo "<td width='230px'><input name='newname[$rowid]' type='text' value='$certn'/></td>";

ページ2:

foreach ($_POST['question'] as $key => $ans) {
  // $_POST['newname'] is now also an array, and the keys should correspond to
  // those in the $_POST['question'] array
  $nn = $_POST['newname'][$key];
  echo $key . $nn;
  echo "</br>";
}
于 2012-05-28T09:25:00.970 に答える
0

この線:

echo "<td width='10px'><input name='question[$rowid][]' type='checkbox' value='1' /></td>";

正しく解釈されません。次のように変更する必要があります。

echo "<td width='10px'><input name='" . $question[$rowid][] . "' type='checkbox' value='1' /></td>";

配列は文字列内で置換されません。

于 2012-05-28T09:17:22.807 に答える