私は、その値に応じてxフィールドの選択フィールドを生成するselectオプションを持つフォームを持っています。ユーザーがフィールド1で#2を選択すると、2つの新しい自己生成セレクトフィールドがフォームに追加されます。 以下は、新しい選択フィールドをdinamically生成するフォームの一部です。PHPは、サーバー側の検証後に動的に生成されたフィールドのフィールド値を失う
<?php
for ($i = 1; $i <= $num_of_selects; $i++) {
?>
<select class="form-control" name="test[option<?= $i ?>]">
<option value="1" <?php echo(($withErrors && $test->getoption1() == 1) ? 'selected' : ''); ?>>Test 1</option>
<option value="2" <?php echo(($withErrors && $test->getoption1() == 2) ? 'selected' : ''); ?>>Test 2</option>
<option value="3" <?php echo(($withErrors && $test->getoption1() == 3) ? 'selected' : ''); ?>>Test 3</option>
</select>
<?php } ?>
フォームをリフレッシュした後にサーバー側の検証が完了するまで、すべての選択値は最初の値と同じです。 問題は、私がdinamically $ test-> getoption1()を変更する方法を覚えていないので、新しいselectで$ test-> getoption2()、$ test-> getoption3()などのようになります。 ..
getoption1()を使用して、最初の選択でユーザーが設定した選択値を収集します。基本的に私は必要なもの、私がでそうであるように1はdinamically $ Iに応じて変更することができることです。
name="test[option<?= $i ?>]"
それはあなたは、文字列を作成することができ
$test->getoption[$i]() == $i ;
回答していただきありがとうございますが、検証しても選択したオプションが表示されませんでした。 –
@TyraPululi今すぐコードを試してください。申し訳ありませんが、間違いがありました。また、無限量の '$ i'のために最適化しました。このコードは、あなたの例であなたが話していることを正確に行います。$ test-> getoption [$ i]()== $ i;' – Rager
もう一度、私は関数定義ファイルをチェックする必要があります。 –