4D v14.3URLとフォームアクション |
||
|
4D v14.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サーバーがポストされたフォームを受信すると、COMPILER_WEBプロジェクトメソッド (存在すれば、後述参照) が呼び出され、そしてOn Web Authenticationデータベースメソッドが (存在すれば) 呼び出されます。このメソッドがTrueを返すと、MethodNameメソッドが実行されます。4Dはフォームに含まれるHTMLフィールドを解析し、値を取り出して自動で4D変数に代入します。フォーム中のフィールドと4D変数は同じ名前でなければなりません。 注: 詳細情報は4DオブジェクトをHTMLオブジェクトにバインドするを参照してください。 フォームに適用するHTMLシンタックスは以下のタイプです:
フォーム中のフィールドごとに、4Dはフォームフィールドの値を同じ名前の変数に代入します。フォームオプション (チェックボックスなど), の場合、4Dは割り当てられた変数を、選択されていれば1に、そうでなければ0に設定します。 注: フォーム中のフィールドの名前がOKであるとき (例えばサブミットボタン)、フィールド値が空でなければOKシステム変数が1に設定されます。そうでなければ0に設定されます。 4D Webデータベースが開始されていて、ブラウザーがスタティックHTMLページからレコードを検索できるようにしたいとします。このページを “search.htm”とします。データベースには検索結果を表示するための“results.htm”のようなスタティックページもあります。 POSTメソッドと/4DACTION/SEARCHアクションがページに割り当てられています。 以下はこのページのHTMLコードです: <form action="/4DACTION/PROCESSFORM" method="post"> <input type="text" name="vname" value=""><br> <!-- 通常ボタン名をVALUEにいれますが、解釈のためVALUEに数字を入れなければいけない--> <input type="checkbox" name="vexact" value="1">単語全体<br> <!-- OKは特別なケース--> <input type="submit" name="OK" value="検索"> </form> データ入力エリアに“ABCD”とタイプし、オプションをチェックして検索ボタンをクリックします。 4Dは以下のCOMPILER_WEBメソッドを呼び出します: この例題ではvnameに文字列"ABCD"が代入され、vexactは1に、OKも1になります (ボタン名がOKであるため)。 If(OK=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 参照
4DオブジェクトをHTMLオブジェクトにバインドする ARTICLE USAGE
ランゲージリファレンス ( 4D v14 R2) Inherited from : URLとフォームアクション ( 4D v12.4) |