スニペット"eForm":フィールドの検証(エラーチェック)する内容を設定
フィールドの検証(エラーチェック)する内容を設定するには、各フィールドにeform
属性を付与します。
構文
値 | 説明 |
---|---|
項目名 必須 |
フィールドの項目名称。 エラーメッセージが表示された際にどの項目のエラーかを表示するためのもの。 |
種類 必須 |
フィールドの値がどんな種類か。 種類に一致しない値だった場合はエラーとなる。 指定可能な値は次の通り。 指定なし(空) ... なんでも string ... 文字列integer ... 整数float ... 浮動小数点date ... 日時形式email ... メールアドレス形式file ... 添付ファイルhtml ... HTML |
必須 必須 |
フィールドの入力・選択を必須にするかどうか。 処理内容としては値が空かどうかを判定する。 指定可能な値は次の通り。 0 ... 任意 1 ... 必須 |
メッセージ | "詳細検証内容"でエラーとなった場合に表示するテキスト。 |
詳細検証内容 | 必須以外の検証内容。 詳しくは 詳細検証内容の指定方法 を参照。 |
チェックボックスなど1つのフィールド名で複数存在する場合は、最初のフィールドのみにeform属性を指定します。
サンプルコード
詳細検証内容の指定方法
"詳細検証内容"の指定方法は次の通りです。
構文
値 | 説明 |
---|---|
種類 |
検証する種類。 指定可能な値は次の通り。 #REGEX ... 正規表現#LIST ... リスト内の一致#RANGE ... 数字の範囲#SELECT ... SQLのSELECTのクエリ#FUNCTION ... 関数 |
内容 | 検証する内容。 種類によって指定の仕方が異なる。 |
種類ごとの検証内容の指定方法
#REGEX
正規表現に一致するかを検証するには、#REGEX
を使用します。
PHPのpreg_match関数の第一引数と同じ指定の仕方をします。
例:
#LIST
フィールドの値がリストのいずれかに一致するかを検証するには、#LIST
を使用します。
カンマ区切りで指定します。
例:
#RANGE
フィールドの値が数字の範囲内かを検証するには、#RANGE
を使用します。
カンマで区切ることで複数の条件を指定することができます。
例(範囲):
例(単一):
例(複数):
例(負):
#SELECT
データベースのSQL文のSELECTからクエリを使用して検証するには、#SELECT
を使用します。
クエリによって取得する結果は1つの列(カラム)のみを返す必要があります。
なお、{DBASE}
でデータベース名を、{PREFIX}
でテーブルのプレフィックスを指定することでそれぞれ自動で割り当ててくれます。
例:
#FUNCTION
フィールドの値がリストのいずれかに一致するかを検証するには、#FUNCTION
を使用します。
内容には予め用意した関数の関数名を指定します。
関数はいくつか用意する方法がありますが、スニペットが最も分かりやすい方法かと思います。
スニペット:eFormFunctions
スニペット名、関数名はなんでもかまいません。
関数の第一引数がフィールドの値が渡ってきます。
関数のreturn
はbooleanで返し、合格した場合はtrue
、不合格の場合(エラーとする)はfalse
を返すようにします。
スニペットのreturn
は何も出力しないよう空の文字列を返すようにします。
なお、1つのスニペットで複数の関数を定義することも可能です。
次のように用意したスニペットを実行して、#FUNCTIONの値に実行したい関数名を指定します。
例: