私は、グループを示すHTMLフォームがあり、各グループには名前と複数のユーザーがあるとします。以下は、関連する要素を含むように簡略化されたサンプルのHTML構造、次のとおりです。CodeIgniterと多次元フォーム要素名の検証
Group Name: <input name='group[0][name]' />
User 1: <input name='group[0][users][0]' />
User 2: <input name='group[0][users][0]' />
User 3: <input name='group[0][users][0]' />
<hr />
Group Name: <input name='group[1][name]' />
User 1: <input name='group[1][users][0]' />
User 2: <input name='group[1][users][0]' />
User 3: <input name='group[1][users][0]' />
私は$this->input->post('group');
を使用してのCodeIgniterに構造全体を読んで、人生が良いです。
カスタム機能を使用してフォーム検証を追加したいと考えています。私はこれを行う場合:
$this->form_validation->set_rules('group[]', 'Group', 'callback_verifyGroupData');
私verifyGroupData($group_data)
機能は、各グループごとに1回呼び出されます。 。この例では、ここで今のダミー関数であるに渡されたグループデータを持つたびに、2回呼び出されます:
function verifyGroupData($data) {
log_message('info','KRYSTODO: verifyGroupData data ' . print_r($data,true));
$this->form_validation->set_message('verifyGroupData', 'This is not entirely checked yet.');
return false;
}
問題は、私はグループごとに個別にエラーを表示できるようにする必要があるということです。私は私のHTMLビューで、個々のエラー表示を追加したいとき今、私が行います
<?php if(form_error('group[]')) {
echo '<div class="validationError">' . form_error('group[]') . '</div>';
}?>
を問題は、このコードは、グループ対グループ[0]に設定されたエラーを区別しないで、[1] 。
CodeIgniterのドキュメントによると、私はこれを行うことができるようになります。
$this->form_validation->set_rules('group[0]', 'Group', 'callback_verifyGroupData');
$this->form_validation->set_rules('group[1]', 'Group', 'callback_verifyGroupData');
実際には、これはすべての時に呼び出さばかりの私verifyGroupData()
にはなりません。
この問題へのアプローチはありますか?
あなたは何が起こっているかを調べるためにform_validationライブラリ自体をデバッグしようとしましたか?これはsystem/libraries/form_validationにあります。 – musoNic80