sho
sho****@ohkun*****
2010年 12月 10日 (金) 11:19:05 JST
はじめまして。sho と申します。
form_validation を用いて,配列のテキストフィールドを validation しようと
しています。
例として,次のような「講演会申し込みフォーム」を挙げます。
<p>講演会申し込みフォーム</p>
参加者1 <input type="text" name="name[]" ... />
メール1 <input type="text" name="mail[]" ... /><br />
参加者2 <input type="text" name="name[]" ... />
メール2 <input type="text" name="mail[]" ... /><br />
参加者3 <input type="text" name="name[]" ... />
メール3 <input type="text" name="mail[]" ... /><br />
:
このフォームを送信すると,$_POST には次のような値が格納されます。
Array
(
[mail] => Array
(
[0] => user1****@examp*****
[1] => user2****@examp*****
[2] => user3****@examp*****
:
)
[name] => Array
(
[0] => 一郎
[1] => 次郎
[2] => 三郎
:
)
)
ここで,ユーザガイドの「フィールド名の指定に配列を使う」には,以下のよう
に書いてあります。
■ フォーム・バリデーション(検証) - フィールド名の指定に配列を使う
http://bit.ly/g6vTYI
> フォームの再表示の時はこうです:
> <input type="text" name="options[]" value="<?php echo set_value('options[]'); ?>" size="50" />
しかし,set_value() は,引数に配列名が指定されたときは配列を返すようです
ので,この例ではうまく値がセットされない (value="Array" となってしまう)
ように思うのですが,これはマニュアルの誤りでしょうか。
また,validation_errors(); は配列全体に対して1個しか得られませんが,個
別の要素に対してエラーを表示する (例えば mail[0], mail[1] は正しいが
mail[2] はエラー) ようなことはできないのでしょうか。
どなたかお分かりの方,お返事いただけましたら幸いです。
--
sho <sho****@ohkun*****>