0

を使用したカウントを含むphpループがあります$counter++。ループ内に以下のコードを追加したいのですが、$Question&の最後にカウンターをエコーアウトしCheckboxGroupます。これどうやってするの?

$Question = $_POST["CheckboxGroup"];

したがって、ループするたびに、次のようなものが作成されます。

$Question1 = $_POST["CheckboxGroup1"];
$Question2 = $_POST["CheckboxGroup2"];
$Question3 = $_POST["CheckboxGroup3"];
$Question4 = $_POST["CheckboxGroup4"];
$Question5 = $_POST["CheckboxGroup5"];
4

3 に答える 3

4

このようにしないでください。代わりに、配列を作成します。

foreach ($_POST['CheckboxGroup'] as $cg) {
   $Question = $cg;
}

HTML マークアップでは、次のように配列値を作成できます。

<input type='checkbox' name='CheckboxGroup[]' />
<input type='checkbox' name='CheckboxGroup[]' />
<input type='checkbox' name='CheckboxGroup[]' />

PHP によって受信されると、数値インデックス付きの配列として表示され、上記のようにループすることができます。配列インデックスについて明示したい場合は、それも可能です。

<input type='checkbox' name='CheckboxGroup[item1]' />
<input type='checkbox' name='CheckboxGroup[item2]' />
<input type='checkbox' name='CheckboxGroup[item3]' />

次の方法で PHP にアクセスします。

$_POST['CheckboxGroup]['item2']
于 2012-09-30T20:13:51.683 に答える
2

変数名の一部としてインデックスを含む変数を使用しないでください。それが配列の目的です。

$Question[$counter] = $_POST['CheckboxGroup'.$counter];
于 2012-09-30T20:13:25.143 に答える
2

あなたは次のようなことをすることができますが

$cnt = 1;
$${'Question' . $cnt} = $_POST['Checkboxgroup' . $cnt];

これは非常に醜いものになり、非常に速くなります。フォーム フィールド名に対する PHP の配列サポートを使用する方がよいでしょう。

<input type="checkbox" name="checkboxgroup[]" value="..." />

$questions[1] = $_POST['checkboxgroup'][1];
于 2012-09-30T20:14:07.560 に答える