0

我正在修改 ODK Opendatakit。ODK 使用 XFORMS 从数据中获取输入并使用数据创建 XML 实例。然后将该实例上传到服务器上。我想要实现的是根据数据捕获器的输入自动完成本地数据库中的一些数据。例如,如果输入了 ID,则从本地数据库验证该 ID,如果存在,则自动完成一些预定义字段。如果 ID 不存在,则它会给出一条消息以检查 ID。

我得到了使用小部件或其他应用程序的建议,该应用程序验证来自本地数据库的条目,然后将要完成的字段的值返回到 ODK XML 实例。我没有得到的是如何将值传递给 ODK 中的实例会话?

4

1 回答 1

0

我没有使用过 ODK,但我可以帮助解决一些 XForms 的问题。

XForms 数据传输与 RESTful XML Web 服务密切相关。根据您的描述,我猜交互模式看起来像这样:

  • 为 ID创建一个input字段。将此(以及任何其他需要发送到服务器的数据)存储在instanceXForm 的主程序中。
  • 创建一个action, 绑定到该输入字段上的“xforms-value-changed”或“DOMFocusOut”事件(xforms-value-changed 将在每次更改时触发,而 DOMFocusOut 只会在用户实际离开该字段时触发 - 哪个您使用取决于您首选的用户体验/服务器端功能)。
  • 在此内部,使用包含在输入字段中输入的 ID的 mainaction运行submission到服务器。instance
  • 然后,服务器必须使用与表单架构匹配的 XML 文档响应此请求,并填写所有必需的值。
  • submission设置replace为main instance

当然,这是一个非常高级的总结。

这里的代码示例:

http://en.wikibooks.org/wiki/XForms/Suggesting_Items

完全是您所追求的,但它具有许多相同的特征;在文本字段中输入文本,将该文本提交到 Web 服务,使用来自 Web 服务的响应来更新表单中的模型。

于 2012-06-24T02:55:11.207 回答