Erlang 在氮框架中检索#下拉选择

Erlang 在氮框架中检索#下拉选择,erlang,postback,nitrogen,Erlang,Postback,Nitrogen,我正在使用erlang氮气web框架开发一个应用程序 我肯定错过了一些非常简单的东西,但我不知道如何检索dropbox元素所做的选择。它似乎没有通过回发消息传递。它是否需要使用wf:wire/3功能 我还没有看到任何文档或示例来说明这一点。我能找到的唯一示例只是显示回发值,它没有提供有关选择哪个选项的任何信息。您需要: 将html_名称添加到dropbox 添加代码以提交表单 然后在被调用的页面(在提交操作中定义)中,您可以使用wf:m(dropbox\u name)访问该值 在中有一个完整

我正在使用erlang氮气web框架开发一个应用程序

我肯定错过了一些非常简单的东西,但我不知道如何检索dropbox元素所做的选择。它似乎没有通过回发消息传递。它是否需要使用wf:wire/3功能

我还没有看到任何文档或示例来说明这一点。我能找到的唯一示例只是显示回发值,它没有提供有关选择哪个选项的任何信息。

您需要:

  • 将html_名称添加到dropbox
  • 添加代码以提交表单
  • 然后在被调用的页面(在提交操作中定义)中,您可以使用wf:m(dropbox\u name)访问该值

中有一个完整的示例,它取决于您如何使用下拉列表。如果您以一种restful的“传统形式”非ajaxy的方式使用它,那么Pascal提到的restful元素就是最好的选择

但是,如果您使用的是氮气的回发功能,那么您只需要通过更标准的氮气id来定义它们

body() ->
   [
       #dropdown{id=fruit, options=[
            #option{text="Apple"},
            #option{text="Banana"},
            #option{text="Orange"}
       ]},
       #button{text="Submit",postback=do_fruit}
   ].

event(do_fruit) ->
   SelectedFruit = wf:q(fruit),
   wf:wire(#alert{text="Selected Fruit was " ++ SelectedFruit}).

注意,下拉列表的id是
水果
#按钮
使用值
do_fruit
启动回发,该值与
事件(do_fruit)
函数中的值相匹配,并且
wf:q(fruit)
使用id
fruit
检索提交的值,谢谢。这正是我所需要的。谢谢。这就是我希望它能起作用的方式。我不知道这里应该使用wf:q/1函数。在我的例子中,我现在正在使用#下拉列表中的postback选项。非常好。很高兴听到。RESTful元素很好,但对于大多数氮的使用,回发结合
wf:q/1
及其变体(
wf:qs
wf:mq
wf:mqs
,和
wf:q_pl
)是一条可行之路。