FormFunction[formspec,func]

送信されると,formspec で指定されたフォームによって得られた値に func を適用する,アクティブなフォームを表す.

FormFunction[{"name1"type1,},func]

タイプ typeiと解釈される,フィールド名 nameiのアクティブなフォームを表す.

FormFunction[{{"name1",label1}type1,},func]

フィールド名 nameiのラベルとして labeliを使う.

FormFunction[{namespec1type1default1,},func]

defaultinamespeciで指定されたフィールドのデフォルトとして使う.

FormFunction[formspec,func,fmt]

クラウド中で,func を適用した結果が形式 fmt で返されるように指定する.

FormFunction[{formspec1,formspec2,},func,]

連続する formspeciがそれまでに得られた値に適用される関数であり得る,複数ページのフォームを表す.

詳細とオプション

  • FormFunction[formspec,func]は,formspec で指定されたフォームを「submit」ボタンとともに表示する.
  • FormFunction[formspec,func]formspecFormObject[]でよい.
  • 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オブジェクト
    assocFormObjectで使われる連想
    tfun文字列に適用される任意の関数
  • FormFunction[{formspec1,formspec2,},]が表す複数ページのフォームではformspeciで指定される連続したフォームが表示される.最終のフォームには,デフォルトで,「done」というボタンが付き,それ以前のフォームには,デフォルトで,「next」というボタンが付く.
  • FormFunction[{formspec1,formspec2,},]formspec1の後ろの formspeciは,ほぼ常に純関数である.これは,それ以前のすべての formspeciで得られた全入力の値を与える連想に適用される.
  • FormFunctionの全体的なオプション
  • AppearanceRules Automatic全体的な外観規則を与える連想
    FormLayoutFunction Automaticフォームのレイアウトを生成する関数
    FormProtectionMethodAutomaticスパム保護のメソッド
    ImageFormattingWidth$ImageFormattingWidth出力のフォーマットをラップする幅
    ImageSizeAutomatic出力の全体的な画像サイズ
    PageTheme Automatic配備されたWebページの全体的なテーマ
  • クラウド中で呼ばれると,FormFunction[formspec,func]は,デフォルトで,Web出力に適した形式で結果を返す.
  • FormFunction[formspec,func,fmt]における可能な結果指定 fmt
  • AutomaticHTMLとして,適切な場合はCloudCDFElementとしてエキスポート
    "HTML"動的コンテンツのない生の静的HTMLページとしてエキスポート
    "HTMLThemed"フォームと同じテーマを使って静的HTMLをエキスポート
    "HTMLPaneled"パネル内のHTMLコンテンツとしてエキスポートする
    "GIF","JPEG","PNG",結果の画像
    "String"結果の生の文字列形式
    "fmt"ExportFormでサポートされる任意の形式
    None文字列あるいはバイトリストを変更せずに渡す
    {None,"type"}定義された特定のHTTP応答タイプで渡す
    {fmt,opts}オプション付きの形式指定
    fbody に適用される任意の関数
  • クラウド中で呼ばれた場合,FormFunction[formspec,func,"fmt"]FormFunction[formspec,ExportForm[func[#],"fmt"]&]に等しい.
  • ノートブックインターフェースで直接呼ばれた場合は,FormFunction[formspec,func,fmt]内の結果指定 fmt は無視される.

例題

すべて開くすべて閉じる

  (2)

フォーム関数を設定する:

これをアクティベートし,入力する:

フォーム関数をクラウドに配備する:

プログラムを使ってフォームに記入する:

部分的に送信されたフォームはアクティベートされない:

動的フォームを作る:

スコープ  (25)

インタープリタの指定  (6)

豊富なInterpreter指定を使う:

Interpreterの頭部は任意であるが,Interpreterのオプションや他の引数の指定に役に立つ:

リストを使ってメニューを作ることができる:

実体リストはメニューとして使うことができる:

選択は任意の式でよい:

規則のリストでラベル指定をすることができる:

デフォルト  (3)

フィールドのデフォルトを指定する.デフォルトがあるフィールドは必須ではない:

デフォルトがないフィールドでも任意にすることができる:

RuleDelayedを使って新たなデフォルトを毎回評価する:

入力  (2)

入力が記入されたフォームを作る:

入力は遅延させることができる:

ラベル  (1)

フィールドのラベルを変更する:

RuleDelayedを使って任意の式を返すことができる:

Noneを使ってラベルを削除する:

外観  (4)

デフォルトのラベルを,キーと違う何かに変更する:

ラベルは任意の式でよい:

単一のフィールドの外観を変える:

RuleDelayedを使い,クラウド上で式を評価する:

規則ではない要素を使ってデフォルトの外観を変える:

コントロール  (7)

タイプによってコントローラが異なる."Color"のカラーピッカー:

ファイル形式のファイルピッカー:

"Boolean"のチェックボックス:

デフォルトのコントローラを変える:

多項選択はさまざまなタイプのコントローラをサポートする:

任意のものを丸ボタンのラベルに使うことができる:

コントロールの指定に純関数も使うことができる:

動的フォーム  (1)

TemplateSlotを含むフォームの一部は,TemplateSlot[key]で言及されたキーが適切な値に固定されるまでは評価されない:

複数ページのフォーム  (1)

FormFunctionは,数ページに渡るフォームをサポートする.フィールドは,前のページの値に依存する:

オプション  (6)

AppearanceRules  (1)

カスタムのタイトルと説明を書く:

ブランド設定に画像を使う:

"ItemLayout"を使ってフォームフィールドの外観を変える:

送信ラベルを変える:

FormLayoutFunction  (1)

純関数を指定して,フォームに特定のレイアウトを施すことができる:

PageTheme  (4)

白がテーマのフォームを配備する:

青がテーマのフォームを配備する:

黒がテーマのフォームを配備する:

赤がテーマのフォームを配備する:

アプリケーション  (2)

2つの空港間の飛行経路を描く:

ある都市についての人口統計データを得る:

特性と関係  (8)

FormFunctionAPIFunctionを代りに使ってもよいように設計されている:

逆もまた真なり:

FormFunctionの第1引数は,完全なFormObjectとして与えることができる:

FormFunctionを評価すると,第1引数が完全なFormObjectになる:

FormFunctionの単一のフィールドは,Interpreterを使ってWolfram言語式の入力を変換する:

これは,事実上,以下と同じである:

Interpreterを直接適用することとも同じである:

AnySubsetを使って,複数選択が可能なコントローラを生成することができる:

RepeatingElementを使って,加減可能なフィールドの集合を作ることができる:

CompoundElementを使って,拡張可能なフィールドの表を作ることができる:

考えられる問題  (1)

Interpreter["String"]は空の文字列を取る.これはFormFunctionには当てはまらない.この場合は空の文字列と空のフィールドが等しいとみなされる:

おもしろい例題  (3)

URLにリダイレクトする検索エンジンを作る:

画像にフィルタをかける,簡単なWebアプリケーションを作る:

音声を出力する:

フォームページを開いてメッセージをタイプし,「Submit」ボタンをクリックする:

再生ボタンをクリックしてメッセージを聞く:

Wolfram Research (2014), FormFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/FormFunction.html (2015年に更新).

テキスト

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

BibTeX

@misc{reference.wolfram_2024_formfunction, author="Wolfram Research", title="{FormFunction}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/FormFunction.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_formfunction, organization={Wolfram Research}, title={FormFunction}, year={2015}, url={https://reference.wolfram.com/language/ref/FormFunction.html}, note=[Accessed: 21-November-2024 ]}