FormFunction
フィールドタイプのリスト »FormFunction[formspec,func]
送信されると,formspec で指定されたフォームによって得られた値に func を適用する,アクティブなフォームを表す.
FormFunction[{"name1"type1,…},func]
タイプ typeiと解釈される,フィールド名 nameiのアクティブなフォームを表す.
FormFunction[{{"name1",label1}type1,…},func]
フィールド名 nameiのラベルとして labeliを使う.
FormFunction[{namespec1type1default1,…},func]
defaultiを namespeciで指定されたフィールドのデフォルトとして使う.
FormFunction[formspec,func,fmt]
クラウド中で,func を適用した結果が形式 fmt で返されるように指定する.
FormFunction[{formspec1,formspec2,…},func,…]
連続する formspeciがそれまでに得られた値に適用される関数であり得る,複数ページのフォームを表す.
詳細とオプション
- FormFunction[formspec,func]は,formspec で指定されたフォームを「submit」ボタンとともに表示する.
- FormFunction[formspec,func]の formspec はFormObject[…]でよい.
- FormFunction[formspec,func]を評価するとFormFunction[FormObject[…],func]が与えられる.ただし,FormObjectには,フォーム中のすべてのフィールドの完全な指定が含まれる.
- CloudDeploy[FormFunction[…]]は,フォームのアクティブなバージョンを含むクラウドオブジェクトを与える.
- FormFunction[formspec,func][]は,まずSetting[formspec]を評価してフォーム中のフィールドについての値の連想を与えることで評価される.認証エラーが生成されなければ,func が連想に適用され,結果が返される.
- FormFunction[formspec,func][<"namek"->inputk,… >]は,FormFunctionの効果を評価する前に,与えられた入力をFormFunctionで指定されたフォームに挿入する.
- FormFunction[…][]を評価するとアクティブなフォームになる.このフォームに有効な入力が与えられたと想定して,このフォームは,送信されたときに func を適用した結果で置換される.
- 各フィールドの typeiは次のいずれでもよい.
-
"form" Interpreterがサポートする任意のフォーム Restricted[…]等 Interpreterがサポートする任意の制約付きのフォーム Interpreter[…] 任意のInterpreterオブジェクト assoc FormObjectで使われる連想 tfun 文字列に適用される任意の関数 - FormFunction[{formspec1,formspec2,…},…]が表す複数ページのフォームではformspeciで指定される連続したフォームが表示される.最終のフォームには,デフォルトで,「done」というボタンが付き,それ以前のフォームには,デフォルトで,「next」というボタンが付く.
- FormFunction[{formspec1,formspec2,…},…]の formspec1の後ろの formspeciは,ほぼ常に純関数である.これは,それ以前のすべての formspeciで得られた全入力の値を与える連想に適用される.
- FormFunctionの全体的なオプション
-
AppearanceRules Automatic 全体的な外観規則を与える連想 FormLayoutFunction Automatic フォームのレイアウトを生成する関数 FormProtectionMethod Automatic スパム保護のメソッド ImageFormattingWidth $ImageFormattingWidth 出力のフォーマットをラップする幅 ImageSize Automatic 出力の全体的な画像サイズ PageTheme Automatic 配備されたWebページの全体的なテーマ - クラウド中で呼ばれると,FormFunction[formspec,func]は,デフォルトで,Web出力に適した形式で結果を返す.
- FormFunction[formspec,func,fmt]における可能な結果指定 fmt
-
Automatic HTMLとして,適切な場合はCloudCDFElementとしてエキスポート "HTML" 動的コンテンツのない生の静的HTMLページとしてエキスポート "HTMLThemed" フォームと同じテーマを使って静的HTMLをエキスポート "HTMLPaneled" パネル内のHTMLコンテンツとしてエキスポートする "GIF","JPEG","PNG",… 結果の画像 "String" 結果の生の文字列形式 "fmt" ExportFormでサポートされる任意の形式 None 文字列あるいはバイトリストを変更せずに渡す {None,"type"} 定義された特定のHTTP応答タイプで渡す {fmt,opts} オプション付きの形式指定 f body に適用される任意の関数 - クラウド中で呼ばれた場合,FormFunction[formspec,func,"fmt"]はFormFunction[formspec,ExportForm[func[#],"fmt"]&]に等しい.
- ノートブックインターフェースで直接呼ばれた場合は,FormFunction[formspec,func,fmt]内の結果指定 fmt は無視される.
例題
すべて開くすべて閉じる例 (2)
スコープ (25)
インタープリタの指定 (6)
豊富なInterpreter指定を使う:
Interpreterの頭部は任意であるが,Interpreterのオプションや他の引数の指定に役に立つ:
デフォルト (3)
ラベル (1)
外観 (4)
RuleDelayedを使い,クラウド上で式を評価する:
コントロール (7)
動的フォーム (1)
TemplateSlotを含むフォームの一部は,TemplateSlot[key]で言及されたキーが適切な値に固定されるまでは評価されない:
複数ページのフォーム (1)
FormFunctionは,数ページに渡るフォームをサポートする.フィールドは,前のページの値に依存する:
オプション (6)
特性と関係 (8)
FormFunctionはAPIFunctionを代りに使ってもよいように設計されている:
FormFunctionの第1引数は,完全なFormObjectとして与えることができる:
FormFunctionを評価すると,第1引数が完全なFormObjectになる:
FormFunctionの単一のフィールドは,Interpreterを使ってWolfram言語式の入力を変換する:
Interpreterを直接適用することとも同じである:
AnySubsetを使って,複数選択が可能なコントローラを生成することができる:
RepeatingElementを使って,加減可能なフィールドの集合を作ることができる:
CompoundElementを使って,拡張可能なフィールドの表を作ることができる:
考えられる問題 (1)
Interpreter["String"]は空の文字列を取る.これはFormFunctionには当てはまらない.この場合は空の文字列と空のフィールドが等しいとみなされる:
テキスト
Wolfram Research (2014), FormFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/FormFunction.html (2015年に更新).
CMS
Wolfram Language. 2014. "FormFunction." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2015. https://reference.wolfram.com/language/ref/FormFunction.html.
APA
Wolfram Language. (2014). FormFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FormFunction.html