跳转到内容

XForms/Send

来自维基教科书,自由的教科书

您想要向 Web 服务器发送请求,以将额外的 XML 数据添加到您的表单中。这允许 XForms 的不同部分延迟获取数据,直到需要它为止。这使得大型表单加载更快,并避免不必要的网络流量。

使用 send 元素

[编辑 | 编辑源代码]

send 元素有一个参数,即 submission。这必须是模型中一个 submission 元素的 ID。

以下是一个例子

   <xf:send submission="get-additional-data"/>

如果您引用此 submission,则需要在您的模型中有一个对应的 submission。

   <xf:model>
      <xf:submission id="get-additional-data" .../>
   </xf:model>

常见用法

[编辑 | 编辑源代码]

send 最常见的用法是执行增量模型加载。如果您有一个包含多个选项卡的大型表单,您可以等到用户选择选项卡时再加载该选项卡的数据。

在以下代码片段中,如果用户选择了表单的 tab-5,则加载表单数据的 submission 将被发送到服务器。

<xf:case id="tab-5">
     <xf:action ev:event="xforms-select" if="not(instance('tab-5-data')/my-data)">
         <xf:send submission="get-tab-5-data"/>
     </xf:action>
     <h2>Tab 5</h2>
</xf:case>

请参阅 XForms/Incremental_Model_Loading,了解其工作原理的示例。

下一页: Load | 上一页: Range
主页: XForms
华夏公益教科书