2012-03-19 6 views
3

私はフォームデータを取得する方法を理解できないようです。 私は、HaskellのWebフレームワークを調べ始めましたが、ドキュメンテーションはちょっとです。スナップウェブサイトのスキニーハイトのチュートリアルには、フォームの記述はありません。 シンプルなhtmlフォームを使って、ハンドラ関数に処理するためのフォームデータを取得するにはどうすればよいですか?誰もチュートリアルに私を指すことができる、Googleはちょうどこの1つ静かな?または、簡単な例...スナップ:フォームデータを取得し、 "if"

また、条件付きコントロールに関する情報はどこで取得できますか?言う、条件付きで私のページの中にhtmlの特定の部分を含める場合、私はどのようにそれをヘイストで行うのですか?基本的に、 "if"はどこですか?

おかげ

+0

[Snap.Core](http://hackage.haskell.org/packages/archive/snap-core/0.8.0/doc/html/Snap-Core)からGETまたはgetPostParamsのgetQueryParamsを試したことがありますか? .html)?私はそれらを使用していないが、彼らはあなたが言うことをするようです。 –

答えて

2

は良いシンプルなフォームのチュートリアル、そして強盗についてmightybyte's musingsためUsing digestive functors with Heistを参照してください。 multipart/form-dataを使用する予定の場合は、Snap.Util.FileUploadsモジュールを使用してください。

Spliceを使用して、条件に基づいてコンテンツを生成できます。
Spliceあなたは、その後のようなもの使ってタグにこのスプライスを結合する

mySplice = do 
    -- get environment conditions 
    -- condition could be passed in as a parameter 
    if condition 
    then return [] -- do nothing 
    else return [TextNode "some content"] -- see Text.XmlHtml 

Node年代のリストを返します。

bindSplice myTag mysplice defaultHeistState

をそして、あなたのテンプレートに<myTag/>を配置します。 Heistがテンプレートをレンダリングすると、スプライスがタグに遭遇したときにスプライスを評価し、値をその場所に挿入します。

+0

"if"の例をありがとう。私はこれを消化しようとします。また、私が必要としていることは説明していませんが、チュートリアルのリンクに感謝します。私はフォームを生成したい、または何も気にしないでください。私はちょうどHTMLだけを使用してフォームを作成し、それをひだテンプレートに貼り付けるだけです。単純なタグが与えられ、送信されると、アクションハンドラ内でどのような関数を使用してフォームデータを取得しますか?おそらくもっとシンプルなのでしょうか? :)ありがとう。 –

+0

@ r.sendeckyその場合は、前述のPaulのように 'getParam'または' getPostParam'を使うだけです。 – qubital

+0

ありがとうございます。それはそれを行う必要があります。私はURL変数を抽出するために使用されていると思ったので、関数getParamsについて混乱しました。どうやらそれは両方をします。私はまだ理解していないが、どのように動作しますが、私はそれをテストします。 –

関連する問題