cfform

説明

CFML カスタムコントロールタグを使用してフォームを作成します。CFML カスタムコントロールタグは、一般的な HTML フォーム入力要素より優れた機能を備えています。結果フォームを HTML または Flash コンテンツとしてクライアントページに含めることができます。フォームは XML および XSLT を使用して生成できます。

カテゴリ

フォームタグ

シンタックス

<cfform
name = "name"
action = "form_action"
method = "POST"、"GET"
format = "HTML"、"Flash"、"XML"
skin = "Flash or XSL skin"
style = "style specification"
preserveData = "yes"、"no"
onSubmit = "javascript"
scriptSrc = "path"
codeBase = "URL"
archive = "URL"
次の属性は、Flash および XML でのみサポートされます。
width = "pixels"、"percent"
height = "pixels"、"percent"
次の属性は、Flash でのみサポートされます。
onError = "ActionScript code"
wMode = "window"、"transparent"、"opaque"
accessible = "yes"、"no"
preloader = "yes"、"no"
timeout = "seconds"
次の属性は、HTML および XML でのみサポートされます。
class = "form class"
enctype = "Internet media type"
id = "HTML id"
onload = "load event script"
onreset = "reset event script"
target = "target window or frame"
>
...
</cfform>

関連項目

cfappletcfcalendarcfformgroupcfformitemcfgridcfinputcfselectcfslidercftextareacftree、『ColdFusion MX 開発ガイド』の情報のリクエストと表示

ヒストリ

ColdFusion MX 7:

ColdFusion MX:

属性

次の表は、ColdFusion が直接使用する属性のリストです。HTML 形式のフォームでは、このリストに記載されていない標準の HTML form タグ属性もこのタグでサポートされ、ブラウザに直接渡されます。ColdFusion には、XML でサポートされる HTML 属性もすべて含まれています。

属性 適用対象 必須/
オプション
デフォルト 説明

name

HTML、Flash、XML

オプション

CFForm_n

フォームの名前です。

HTML 形式の場合、この属性を省略して id 属性を指定すると、ColdFusion ではブラウザに送信される HTML に name 属性が含まれません。この動作により、cfform タグを使用して XHTML 準拠のフォームを作成することができます。name 属性および id を省略すると、ColdFusion では CFForm_n というフォーム名が生成されます。ここで、n はページ上のフォームに連続的に割り当てられた番号です。

action

HTML、Flash、XML

オプション

「説明」を参照

処理のためにフォームを送信するときに実行する ColdFusion ページの名前です。

この属性を省略すると、フォームは CGI.SCRIPT_NAME 変数で識別されるページに送信されます。これは、フォームを表示するようにリクエストされたページです。

method

HTML、Flash、XML

オプション

post

ブラウザがフォームデータをサーバーに送信するために使用するメソッドです。

  • post: HTTP Post メソッドを使用してデータを送信します。このメソッドでは、データを個別のメッセージとしてサーバーに送信します。
  • get: HTTP Get メソッドを使用してデータを送信します。このメソッドでは、フォームフィールドの内容を URL クエリー文字列に挿入します。

format

HTML、Flash、XML

オプション

HTML

  • HTML: HTML フォームを生成し、クライアントに送信します。cfgrid および cftree の子コントロールは Flash 形式またはアプレット形式にできます。
  • Flash: Flash フォームを生成し、クライアントに送信します。すべてのコントロールは Flash 形式です。
  • XML: XForms 準拠の XML を生成し、name 属性で指定された変数に結果を保存します。デフォルトでは、ColdFusion は XSL スキンを適用して結果を表示します。詳細については、skin 属性を参照してください。

skin

Flash、XML

オプション

Flash: haloGreen

XML:

default.xsl

Flash: Macromedia の Halo カラーを使用して出力のスタイルを設定します。強調表示された要素や選択された要素で使用される色が、スキンによって決まります。

  • haloSilver
  • haloBlue
  • haloGreen
  • haloOrange

XML: XSL スキンを適用して結果の HTML をクライアントに表示するかどうかを指定します。次のいずれかを指定します。

  • ColdFusion MX スキン名: 指定したスキンを適用します。
  • XSL ファイル名: 指定したパスにあるスキンを適用します。
  • "なし": XSL スキンを適用しません。CFML ページでは、name 属性で指定された変数に保存された XML を処理して、結果を表示する必要があります。
  • (省略した場合) または"デフォルト": ColdFusion MX のデフォルトのスキンを使用します。

次の ColdFusion MX スキンを指定することができます。これらのスキンは、cf_webroot¥CFIDE¥scripts¥xsl ディレクトリにあります。

  • basic
  • basiccss
  • beige
  • blue
  • bluegray
  • lightgray
  • red
  • silver

ファイル名は次のいずれかです。

  • 絶対 URL
  • Web ルートに関連付けられた URL
  • 絶対ファイルパス
  • "scripts" フォルダまたは cf_webroot¥CFIDE¥scripts ディレクトリのサブディレクトリにあるファイルの名前この場合は、.xsl 接頭辞を指定しないでください。

style

HTML、Flash、XML

オプション

 

フォームに適用するスタイルです。HTML 形式または XML 形式では、ColdFusion は style 属性をブラウザまたは XML に渡します。

Flash 形式では、CSS 形式のスタイル仕様でなければなりません。Flash スタイルの指定に関する詳細については、『ColdFusion MX 開発ガイド』のMacromedia Flash 形式のフォームの作成を参照してください。

preserveData

HTML、XML

オプション

no

cfform の action 属性によりフォームを含むページに戻るときに、コントロールの値を送信された値で上書きするかどうかを決定します。

  • false: コントロールタグの属性に指定された値を使用します。
  • true: 対応する送信値を使用します。

次のコントロールに適用されます。

  • cfinputcfslidercftextinput: value 属性の値を上書きします。
  • クエリーから挿入される cfselect コントロール: selected 属性を上書きします。cfselectを参照してください。
  • cftree コントロール: cftreeitemexpand 属性を上書きします。true の場合、以前に選択された要素を展開します。cftreecompletePath 属性を yes に設定する必要があります。
  • cfgrid コントロール: 効果はありません。このコントロールがデータをデータベースに再送信したかどうかの混乱を避けるために使われます。

onLoad

HTML、XML

オプション

 

フォームのロード時に実行する JavaScript です。

onReset

HTML、XML

オプション

 

ユーザーが [リセット] ボタンをクリックしたときに実行する JavaScript です。

onSubmit

HTML、

Flash

XML

オプション

 

フォームの送信前にデータの前処理を行うために実行する JavaScript または ActionScript 関数です。『ColdFusion MX 開発ガイド』を参照してください。子タグが onSubmit フィールド検証を指定した場合、ColdFusion はこの JavaScript の実行前に検証を行います。

scriptSrc

HTML、Flash、XML

オプション

「説明」を参照

このタグおよび子タグが使用するクライアントサイドの JavaScript を使用して、"cfform.js" ファイルを含むディレクトリの、Web ルートに関連付けられた URL を指定します。XML 形式フォームの場合、このディレクトリは XSLT スキンのデフォルトディレクトリも兼ねています。

この属性は、ファイルがデフォルトの保存場所にない場合に役立ちます。この属性は、/CFIDE ディレクトリへのアクセスがブロックされるホスティング環境または設定で必要になることがあります。

デフォルトの保存場所は ColdFusion MX Administrator で設定されます。/CFIDE/scripts/cfform.js がその場所です。

Administrator でデフォルト値が空の場合、ColdFusion は ColdFusion ページが格納されているディレクトリでスクリプトを検索します。

codeBase

HTML および XML のアプレット

オプション

「説明」を参照

Internet Explorer 用のダウンロード可能な JRE プラグインの URL です。cfgridcfslider、および cftree の Java アプレットコントロールに使用します。

デフォルトは、/CFIDE/classes/cf-j2re-win.cab です。

archive

HTML および XML のXML

オプション

「説明」を参照

cfgridcfslider、および cftree のアプレットコントロール用のダウンロード可能な Java クラスの URL です。

デフォルトは、/CFIDE/classes/cfapplets.jar です。

height

Flash

XML

オプション

100%

フォームの高さです。ピクセル数を指定する数値を使用します。Flash では、"height=60%" などのパーセント値を使用して、表示可能な高さの割合を指定できます。表示される高さは、指定したサイズよりも小さい場合があります。

width

Flash

XML

オプション

100%

フォームの幅です。ピクセル数を指定する数値を使用します。Flash では、"height=60%" などのパーセント値を使用して、表示可能な幅の割合を指定できます。

onError

Flash

オプション

 

onSubmit 検証または onBlur 検証の場合にのみ適用されます。onServer 検証の場合は効果がありません。

1 つ以上の検証エラーがあるフォームをユーザーが送信する場合に実行する、1 つまたは複数の ActionScript 式です。

wMode

Flash

オプション

window

Flash フォームが HTML ページ上の同じスペースを使用する他の表示可能コンテンツと相対して表示される方法を指定します。

  • window: Flash フォームはページの最上位レイヤーにあり、ダイナミックな HTML ドロップダウンリストなど、同じスペースを共有する要素を見えなくします。
  • transparent: Flash フォームは dhtml の z-index に従うので、他のコンテンツをフォームの上位レイヤーに置くことができます。Flash フォームが他のコンテンツの上位にある場合、下位のコンテンツはフォームの透過領域に表示されます。
  • opaque: Flash フォームは dhtml の z-index に従うので、他のコンテンツをフォームの上位レイヤーに置くことができます。Flash フォームが他のコンテンツの上位にある場合、フォームは下位のコンテンツをブロックします。

accessible

Flash

オプション

No

スクリーンリーダーを Flash フォームに対応可能にするかどうかを指定します。スクリーンリーダーのサポートにより、クライアントに送信する SWF ファイルに約 80 KB が加わります。

preloader

Flash

オプション

true

Flash フォームのロード時に進行状況表示バーを表示するかどうかを指定します。

timeout

Flash

オプション

0

Flash のフォームデータをサーバーにキャッシュする秒数を示す整数値です。この値を 0 に設定すると、データはキャッシュされません。詳細については、『ColdFusion MX 開発ガイド』のFlash フォームでのデータのキャッシュを参照してください。

メモ: XML でサポートされることが明記されていない属性は、ColdFusion MX で提供されるスキンでは処理されません。ただし、これらの属性は、生成された XML には form タグの html ネーム空間属性として含まれます。

使用方法

このタグには終了タグが必要です。

cfform タグ内で次の ColdFusion フォームコントロールタグを使用することができます。

HTML 形式の場合はすべてのタグが、Flash 形式の場合は cftree タグと cfgrid タグが、ブラウザ上で JavaScript をサポートする必要があります。cfapplet タグおよびアプレット形式の cfgrid タグ、cfslider タグ、cftree タグでは、クライアントが Java アプレットをダウンロードする必要があります。

cfform タグで Flash 形式を指定した場合、ColdFusion はフォーム本文の HTML をすべて無視します。すべてのフォームコントロールに対して、cfinput などの ColdFusion タグを使用する必要があります。HTML 形式の cfform タグに、Flash 形式の個別の cfgrid コントロールおよび cftree コントロールを含めることができます。

Flash 形式の場合、フォームで機密データ (クレジットカード情報など) をリクエストしないときは、timeout 属性の設定を検討してください。この属性を設定すると、ユーザーがブラウザの [戻る] ボタンを使って元のフォームに戻るときに "フォームデータが期限切れになりました。このページをブラウザに再ロードしてください。" などのエラーメッセージが表示されないようにすることができます。詳細については、『ColdFusion MX 開発ガイド』のFlash フォームでのデータのキャッシュFlash フォームでのデータのキャッシュを参照してください。

メモ: Flash 形式の場合、height 属性および width 属性を指定しないときは、ブラウザウィンドウの領域に等しいブラウザスペースが使用されます。フォームの後に他の出力が続く場合、ユーザーはスクロールしてその出力を表示しなければなりません。したがって、Flash フォームの後に他の出力を続けるときは、height および width の値を指定してください。

属性値のテキストに引用符が含まれる場合は、引用符を 2 つ続けて使用し、エスケープ処理する必要があります。

Flash フォームでの onError 属性の使用

onSubmit 検証または onBlur 検証を使用する場合、onError 属性を使用すると、検証エラーのある Flash フォームをユーザーが送信しようとするときに実行する ActionScript コードを指定することができます。次のとおりです。

ActionScript ではエラー変数を使用してフィールドおよびエラーを判別することができます。エラーオブジェクトには次のフィールドがあります。

フィールド コンテンツ

name

コントロールの CFML タグの name 属性です。

field

フィールドの名前として Flash で使われる内部名です。たとえば、_level0.field1 などです。

value

フィールド内の値です。

message

コントロールの CFML タグの message 属性です。

次の例は、onError 属性を使用する cfform タグを示しています。このタグでは、無効なエントリが入力された lastName フィールドがある accordion または tabnavigator 内のタブを選択します。

<cfform name="form1" format="flash" width="800" height="500" 
      onError="if (errors['lastName'] != undefined
         ){tabA.selectedIndex=0; _root.lastName.setFocus();}">

HTML フォームタグと属性の併用

HTML 形式の場合、cfform タグを使用すると、次の標準の HTML 要素を組み込むことができます。これらの要素は、Flash 形式では無視されます。

<h3>cfform の例</h3>
<!--- Form.oncethrough が存在する場合、フォームは送信されています。 --->
<cfif IsDefined("Form.oncethrough")>
   <cfif IsDefined("Form.testVal1")>
      <h3>ラジオボタンテストの結果</h3>
      <cfif Form.testVal1>ラジオボタンの応答は yes でした。
      <cfelse>ラジオボタンの応答は no でした。
      </cfif>
   </cfif>
   <h3>チェックボックステストの結果</h3>
   <cfif IsDefined("Form.chkTest2")>
      チェックボックスの応答は yes でした。
   <cfelse>
      チェックボックスの応答は no でした。
   </cfif>
   <cfif IsDefined("Form.textSample") AND Form.textSample is not "">
      <h3>クレジットカード入力の結果</h3>
      クレジットカード番号 <cfoutput>#Form.textSample#</cfoutput> は、
      MOD 10 アルゴリズムで有効でした。
   </cfif>
   <cfif IsDefined("Form.sampleSlider")>
      <cfoutput>
         <h3>このページに #Form.sampleSlider# の比率を指定しました。</h3>
      </cfoutput>
   </cfif>
   <hr noshade="True">
</cfif>

<!--- 最初に、cfform タグを呼び出します。 --->
<cfform name="cfformexample">
   <h4>この例は、cfinput のラジオボタン入力タイプです。</h4>
   Yes <cfinput type = "Radio" name = "TestVal1" value = "Yes" checked>
   No <cfinput type = "Radio" name = "TestVal1" value = "No">
   <h4>この例は、cfinput のチェックボックス入力タイプです。</h4>
   <cfinput type = "Checkbox" name = "ChkTest2" value = "Yes">
   <h4>これは cfinput テキストボックスのクライアントサイド検証の例です。</h4>
   (<I>この項目はオプションです。</i>)<br>
   クレジットカード番号を入力してください。
   <cfinput type = "Text" name = "TextSample"
      message = "クレジットカード番号を入力してください。"
      validate = "creditcard" required = "No">
   <h4>これは cfslider タグの使用例です。</h4>
   コントロールをスライドさせることによって、この例の承認を 1 ~ 10 で格付けします。<br>
   1 <cfslider name = "sampleSlider" width="100"
         label = "Page Value:" range = "1,10"
         message = "1 ~ 10 の値を入力してください。"> 10
   <p><cfinput type = "submit" name = "submit" value = "結果を表示">
   <cfinput type = "hidden" name = "oncethrough" value = "Yes"></p>
</cfform>

簡単な XML フォーム

次の例は、簡単な XML 形式のフォームを示しています。ColdFusion に同梱されている default.xsl 変換を使用して、表示する HTML 出力を生成します。

<cfform name="testXForm" format="XML" skin="basic">
  <!--- cfformgroup を使用して、名と姓を 1 つの行に挿入します。 --->
  <cfformgroup type="horizontal">
     <cfinput type="text" name="firstname" label="First Name:"value="Robert">
     <cfinput type="text" name="lastname" label="Last Name:"value="Smith">
  </cfformgroup>
  <cfinput type="password" name="password" label="Password:"value="">
  <cfinput type="hidden" name="hidden" label="hidden:"value="">
  <cfselect name="state" style="width:200" label="State">
    <option>California</option>
    <option selected>Utah</option>
    <option>Iowa</option>
    <option selected>New York</option>
   </cfselect>
   <cftextarea name="description" label="Description:"rows="5" cols="40">これはサンプルテキストです。</cftextarea>
</cfform>

ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告

バージョン7