2011-12-08 17 views
5

個別の詳細を持つ顧客の配列を持っています。ここには非常に簡単な例があります。 CodeIgniterのでCodeigniter - 配列フィールドの個別エラーメッセージの表示

<input type="text" name="customer_names[]" />

顧客名のいずれかがvalidation_errors();がアレイ全体に対して1つのメッセージを示し、空白である場合、各CUSTOMER_NAMEは
$this->form_validation->set_rules('customer_names[]','Customer Names','required');

が必要です。

個々のエラーメッセージはどのように入手できますか?

注:echo form_error('customer_names[0]');は、customer_name 0を空白のままにしておきたいところです。

+0

ドキュメントによると、そのshoulの仕事:http://codeigniter.com/user_guide/libraries/form_validation.html#arraysasfields あなたは何を見ていますか? – swatkins

答えて

1

Form Validationドキュメント、特にUsing Arrays as Field Namesセクションを見て、私はあなたが明示的にあなたが望むように動作するform_error()方法を取得するための名前でインデックスを含むことで、あなたの入力 に名前を付けるために必要になるだろうと思います。

form_error('customer_names[0]')を動作させるには、実際にはcustomer_names[0]という名前の入力が必要です。

+0

これは役に立ちましたが、私のフィールドはそれぞれのキーで明示的に名前を付ける必要がありましたが、うまくいきました。この[回答はこちら](http://stackoverflow.com/a/32304264/406540​​7)では、CodeIgniter 3にこの機能があります。 –

+0

@machineaddictの答えはこれとまったく同じですが、ルール名にインデックスを指定する必要はありませんでした。 –

0

私はと同じ問題CodeIgniter 2.1.3を持っていました。私はこのようにそれを解決しています

入力は次のとおりです。

<input type="text" name="customer_names[0]" />
<input type="text" name="customer_names[1]" />
...

フォームの検証は、次のとおりです。

$this->form_validation->set_rules('customer_names[0]','Customer Names','required');
$this->form_validation->set_rules('customer_names[1]','Customer Names','required');
...

エラーは次のように表示されます。

echo form_error('customer_names[0]');
echo form_error('customer_names[1]');
...

関連する問題