[Codeigniter-users] form_validation で配列の検証

Zurück zum Archiv-Index

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




Codeigniter-users メーリングリストの案内
Zurück zum Archiv-Index