アドビでは 2020 年 12 月 31 日をもって Flash Player のサポートを終了します。2021 年 1 月 12 日以降は Flash Player で Flash コンテンツが動作しなくなるので、システムを保護するためにすべてのユーザーが Flash Player を直ちにアンインストールすることを強くお勧めします。
詳しくは、Adobe Flash Player サポート終了情報ページを参照してください。
cfform タグとその CFML サブタグを使用すると、次に示す 3 つの形式の動的フォームを作成できます。
- HTML:できる限り標準の HTML タグを使用し、グリッド、ツリー、カレンダーなどの複雑なコントロールについてはアプレットまたは Flash を使用します。HTML を使用すると、なじみのある外観を提供できますが、データと表示を簡単に分離することができません。また、Flash のタブ付きナビゲーターやアコーディオン形式のコンテナ、カスタマイズされた XML コントロールなどの複雑な構造を提供できません。
- Flash:視覚効果の高い現代的な外観を提供できます。HTML では利用できない、タブ付きナビゲーターやアコーディオン形式のコンテナなどのコントロールがサポートされています。Flash フォームは、ブラウザーに依存しません。Flash 形式を処理する Flash Player は、Windows および Macintosh のすべての主要ブラウザーや、Linux の Netscape および Mozilla で動作します。
- XML:XSLT(Extensible Stylesheet Language Transformation)スキンを指定して、XML をスタイル設定済みの HTML 出力に変換できます。Adobe ColdFusion には、使用可能なスキンがいくつか用意されています。また、独自のカスタムスキンを作成してカスタムコントロールをサポートすることもできます。cfform タグとそのサブタグには、入力データの検証機能も用意されています。例えば、ブラウザーまたはサーバーで検証をおこなうことができます。データ型を確認したり、データ入力をマスクしたりできます。個々の cfform タグには動的機能が追加されています。タグの中には、対応する HTML タグがないものもあれば、データソースからコントロールへの動的なデータ入力を直接サポートしているものもあります。また、cfform タグの preservedata 属性を使用すれば、ユーザーがフォームを送信した後もフォームのユーザー入力を保持できるので、フォームが再表示された場合、データも再表示されます。ここでは、cfform タグの機能について説明すると共に、対応する HTML タグがない一部の cfform 子タグの使用方法について重点的に解説します。cfformtag を使用して作成する ColdFusion フォームのその他の機能については、以下を参照してください。
cfform コントロール
cfform タグを使用して作成するフォームで使用できる ColdFusion コントロールを次の表に示します。これらのタグは cfform タグ内でのみ使用できます。特に説明がない限り、これらのコントロールは HTML フォーム、Flash フォーム、および XML スキン可能フォームでサポートされています。
コントロール |
説明 |
詳細情報 |
---|---|---|
カスタム Java アプレットをフォームに埋め込みます。Flash フォームではサポートされていません。 |
||
インタラクティブな Flash カレンダーを表示します。HTML フォームと Flash フォームでは使用できますが、XML スキン可能フォームでは無視されます。ユーザーは、このカレンダーで日付を選択して、フォーム変数として送信することができます。 |
『CFML リファレンス』の cfcalendar タグ |
|
コンテナコントロールを作成します。この中に複数のフォームコントロールを格納して、編成や書式設定をおこないます。Flash フォームおよび XML スキン可能フォームの cfform タグの本文で使用します。HTML フォームでは無視されます。 |
||
Flash フォームに水平線、垂直線、形式設定されたテキスト、または形式設定されていないテキストを挿入します。Flash フォームおよび XML フォームの cfform または cfformgroup タグの本文で使用されます。HTML フォームでは無視されます。 |
||
Java アプレットまたは Flash のデータグリッドを作成します。データの設定は、クエリからおこなうか、各セルの内容を個別に定義します。また、グリッドを使用して、データソースのレコードの挿入、更新、削除もおこなえます。 |
||
HTML の input タグに似ていますが、入力検証機能が追加されています。 |
ColdFusion でのフォームの使用の基本フォームの作成 |
|
選択ボックスを表示します。HTML の select タグに似ていますが、入力検証機能が追加されています。 |
||
スライダーを移動してデータを入力できる Java アプレットベースのコントロールを作成します。Flash フォームではサポートされていません。 |
||
テキスト入力領域を表示します。HTML の textarea タグに似ていますが、入力検証機能が追加されています。 |
『CFML リファレンス』の cftextarea タグ |
|
Java アプレットまたは Flash の階層ツリー形式のコントロールを作成します。様々な要素のグラフィック画像を使用できます。ツリーのデータおよび属性を表す ColdFusion 構造体を生成することもできます。 |
preservedata 属性による入力データの保持
cfform の preservedata 属性を設定すると、ユーザーがフォームを送信した後も、フォームに入力されたユーザーデータが引き続き表示されます。データは、cfinput、cfslider、cftextinput、cftree の各コントロールや、クエリでデータが入力された cfselect コントロールで保持されます。デフォルト値が設定されているコントロールでも、ユーザーの入力したデータが保持されます。
フォームとフォームのアクションコードが同じページに含まれている場合 (フォームがそれ自体にデータを送信する場合) は、フォームにデータを保持できます。また、アクションページにフォームのコピー(同じ名前のコントロール)が存在する場合もデータを保持できます。アクションページのフォームは、元のフォームと同一である必要はありません。フォーム要素の数が元のフォームと異なっていてもかまいません。その場合は、両方のページで同じ名前を持つフォーム要素だけが、データを保持します。
注意:データの保持は、アクションページの preservedata 設定で制御します。 |
例えば、次のフォームを preserve.cfm という名前で保存した場合、フォームの送信後も、入力したテキストが引き続き表示されます。
<cfform action="preserve.cfm" preservedata="Yes"> |
preservedata 属性の使用に関する注意事項
preservedata 属性を使用する場合は、次のガイドラインに従ってください。
- cftree タグでは、preservedata 属性が指定されていると、前に選択されていた要素までツリーが展開されます。ツリーが正しく展開されるようにするには、completePath 属性を True に設定します。
- preservedata 属性は cfgrid タグに影響を与えません。グリッドのデータをクエリで入力する場合は、グリッドを再表示する前に、cfgridupdate タグなどを使用してデータソースのデータを更新します。グリッドを表示すれば更新されたデータベース情報が表示されます。
ブラウザーに関する注意事項
アプレットベースの cfgrid フォーム、cfslider フォーム、cftree フォームでは、その内容を表示するために JavaScript および Java が使用されます。様々なブラウザーで一貫した表示がおこなわれるように、これらのアプレットでは Java プラグインが使用されます。したがって、ブラウザーの Java サポートレベルには依存しません。
ブラウザのプラグインは、ColdFusion によって必要に応じてダウンロードされ、インストールされます。一部のブラウザでは、プラグインのインストールを確認するためのダイアログボックスが 1 つ表示されます。ブラウザによっては(古いバージョンの Netscape など)、簡単なオプションウィンドウをいくつか設定する必要があります。
このコントロールは、JavaScript を使用して ColdFusion にデータを返すので、ブラウザで JavaScript が無効に設定されていると、これらのコントロールが含まれているフォームは正しく実行されません。この場合、コントロールは表示されますが、データの送信と検証がおこなわれず、JavaScript エラーが発生することがあります。
Java は、直接ブラウザで処理されるのではなくプラグインで処理されるので、ブラウザで Java の実行を無効にしても、コントロールの処理には影響を与えません。何らかの理由で、必要なコントロールをブラウザに表示できない場合は、コントロールの代わりに "サポートされていない" というメッセージが表示されます。
cfform タグの notsupported 属性を使用すると、代替エラーメッセージを指定できます。
Flash 版の cfgrid および cftree コントロールを使用すれば、ブラウザの Java および JavaScript に関する問題を回避できます。これらのコントロールは、Windows、Mac OS X、Linux で動作し、Java のサポートには依存しません。Flash 版の cfslider コントロールはありません。また、アプレット版の cfcalendar コントロールもありません。