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*****>