4D v16.3URLとフォームアクション |
||
|
4D v16.3
URLとフォームアクション
URLとフォームアクション
4D Webサーバーはデータベースに様々なアクションを実装することを可能にする、URLやHTMLフォームアクションを提供します。 URLには以下のものがあります:
さらに4D Webサーバーは追加でいくつかのURLを受け入れます:
シンタックス: 4DACTION/MyMethod{/Param}
利用法: URLまたはフォームアクション このURLを使用して、HTMLオブジェクト (テキスト、ボタン...) を4Dプロジェクトメソッドにリンクできます。リンクは /4DACTION/MyMethod/Param のように記述され、MyMethod はユーザーがリンクをクリックしたときに実行される4Dプロジェクトメソッド名、Param はオプションのテキスト引数で、MyMethodメソッドの $1 に渡されます (後述の“URLから呼ばれる4Dメソッドに渡されるテキスト引数”参照)。 <a href="/4DACTION/MyMethod/Param">Do Something</a> MyMethodプロジェクトメソッドは通常レスポンスを返すべきです (WEB SEND FILE や WEB SEND BLOBでHTMLページを送信するなど)。ブラウザーをブロックしないように、処理は可能な限り短時間で行われるようにします。 注: /4DACTION/ から呼び出されるメソッドはインターフェース要素 (DIALOG, ALERT...) を呼び出してはいけません。 警告: /4DACTION/ URLを使用して4Dメソッドを呼び出せるようにするには、メソッドプロパティで“4D HTMLタグやURL (4DACTION) で利用可能” 属性がチェックされていなければなりません。これはデフォルトで選択されていません。詳細は接続セキュリティを参照してください。 この例題はHTMLピクチャーオブジェクトに/4DACTION/ URLを割り当て、ページにダイナミックなピクチャーを表示する方法を説明しています。スタティックHTMLページに以下のコードを記述します: <img src="/4DACTION/PICTFROMLIB/1000"> PICTFROMLIBメソッドは以下のとおりです: C_TEXT($1) // この引数は常に宣言する 4D Webサーバーでは、ポストされたフォームを使用することもできます。これはスタティックなページからWebサーバーにデータを送信し、全ての値を簡単に取得するというものです。POSTタイプを使用し、フォームのアクションは /4DACTION/MethodName で始まっていなければなりません。 注: フォームは2つのメソッドを使用してサブミットできます (4Dでは両方のタイプを使用できます):
この場合、Webサーバーがポストされたフォームを受信すると、On Web Authenticationデータベースメソッドが (存在すれば) 呼び出されます。このメソッドがTrueを返すと、MethodNameメソッドが実行されます。このメソッド内では、サーバーに投稿されたHTMLページに含まれる全てのフィールドの名前と値を取得するためにはWEB GET VARIABLES コマンドを呼び出す必要があります。 互換性に関する注意: 変換されたデータベースにおいては、互換性ページ の"Web変数を自動的に代入"オプションがチェックされている場合、特殊なCOMPILER_WEB プロジェクトメソッドが(存在していれば)最初に呼び出されていました。4Dはフォーム内のHTMLフィールドの値を取得し、呼び出されたメソッド内の変数と同じ名前を持っている場合にはその中身を4D変数の中へと自動的に移していました。この機能は現在は廃止予定となっています。より詳細な情報については、4DオブジェクトをHTMLオブジェクトにバインドする の章を参照して下さい。 フォームに適用するHTMLシンタックスは以下のタイプです:
フォーム中のフィールドごとに、4Dはフォームフィールドの値を同じ名前の変数に代入します。 4D Webデータベースが開始されていて、ブラウザーがスタティックHTMLページからレコードを検索できるようにしたいとします。このページを “search.htm”とします。データベースには検索結果を表示するための“results.htm”のようなスタティックページもあります。 POSTメソッドと/4DACTION/SEARCHアクションがページに割り当てられています。 以下はこのページのHTMLコードです: <FORM ACTION="/4DACTION/PROCESSFORM" METHOD=POST> <INPUT TYPE=TEXT NAME=VNAME VALUE=""><BR> <INPUT TYPE=CHECKBOX NAME=EXACT VALUE="Word">Whole word<BR> <INPUT TYPE=SUBMIT NAME=OK VALUE="Search"> </FORM> データ入力エリアに“ABCD”とタイプし、"句として検索"オプションをチェックして検索ボタンをクリックします。 Webサーバーに送られたリクエスト内部は以下の通りです: VNAME="ABCD" 4DはOn Web Authenticationデータベースメソッドを (存在すれば) 呼び出し、そして以下のPROCESSFORMプロジェクトメソッドが呼び出されます: C_TEXT($1) //コンパイルモードの場合必須 シンタックス: 4DCGI/<action> 利用法: URL. 4D Webサーバーが /4DCGI/<action> URLを受信すると、On Web Authenticationデータベースメソッドが (存在すれば) 呼び出されます。このメソッドがTrueを返すと、WebサーバーはOn Web Connectionデータベースメソッドを呼び出し、$1にURLをそのまま渡します。 /4DCGI/ URLはどのファイルにも対応しません。その役割は4DのOn Web Connectionデータベースメソッドを呼び出すことです。“<action>” 引数にはどのようなタイプの情報でも含めることができます。 このURLを使用してどのようなタイプのアクションでも行うことができます。On Web Connectionデータベースメソッドやそのサブメソッド内で$1値 をテストして、適切なアクションを実行できます。例えば完全にカスタマイズされたHTMLからレコードの追加、検索、並び替えなどを行ったり、GIFイ メージを作成したりできます。このURLを使用する例題はPICTURE TO GIF および WEB SEND HTTP REDIRECTコマンドにあります。 アクションを指示した後は、データを送信するコマンド (WEB SEND FILE, WEB SEND BLOB等) を使用してレスポンスを返さなければなりません。 警告: ブラウザーをブロックしないようにするため、アクションはなるべく短時間で終わらせるようにしてください。 4Dは特別なURL (/4DACTION/) から呼ばれるメソッドにテキスト引数を渡します。これらのテキスト引数に関して:
4Dメソッドへの呼び出し元により、異なる引数を宣言しなければなりません。
シンタックス: 利用: POSTまたはGETメソッドのURL このURLを使用して、ローカル4Dデータベースのテーブル中のデータをリモートのデータベースとHTTPで同期できます。これは例えばスマートフォン上にインストールされたクライアントアプリケーションや、サードパーティーのHTTPアプリケーションと4Dデータベースを同期するために使用できます。 /4DSYNC/ URLをGETメソッドで使用して4Dデータベースのデータを取得したり、POSTメソッドで使用して4Dデータベースのデータを更新したりできます。 使用できるHTTPリクエストは以下の通りです:
注: この同期メカニズムを有効にするにはデータベース設定のWeb/設定ページで、"4DSYNC" URLを許可するオプションを選択しなければなりません。選択しない場合、4DSYNC URLを含むリクエストは失敗します。 /4DSYNC/ URLを使用する場合、以下の原則を適用する必要があります:
参照
|
プロパティ
プロダクト: 4D
履歴
ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |