3

アプリケーションに複数選択のあるフォームがあります。CI のフォーム ヘルパーを使用してフォームを作成しているので、要素のビルドは次のようになります。

return form_multiselect('authors[response][]', $faculty->get_all_for_multiselect(), 
                         $pre_selected, $additional_attributes);

アイテムがデータベースにある場合、これはすべて問題ありません ($pre_selected は既存の応答を取得します)。ただし、CI のフォーム検証を通じてフォームも実行しています。その場合、検証が失敗すると、複数選択で選択されていた値が失われます。

これは私が見ているだけの単純なものだと確信しているので、誰かがここで私を助けてくれることを願っています.

さらに情報を追加する

フィールドは必須としてマークされているため、バリデーターを通過します (ただし、現在のユーザーを自動的に選択しているため、常に通過します)。

4

1 に答える 1

1

( $pre_selected は値の配列だと思いますか?)

$_POST 配列を使用して、フォームの送信が失敗した後に選択した値をリセットできます。

すでに $pre_selected を使用しているため、次を使用できるはずです。

return form_multiselect('authors[response][]', $faculty->get_all_for_multiselect(), 
                         array_unique(array_merge($pre_selected, $_POST['response'])), $additional_attributes);
于 2013-07-25T04:49:58.430 に答える