我在 xqy 页面中有一个隐藏字段。现在我想通过 xquery 代码在同一页面中获取它的值。页面不刷新。我不想使用 javascript。有什么方法可以在不提交页面的情况下使用 xquery 获取隐藏字段的值。
3 回答
您可以使用 XForms,而不是简单的 HTML 并直接输出它。http://en.wikibooks.org/wiki/XForms上提供了一些关于 XForms 的详尽文档
然后可以使用 XForms-Processor(例如 XSLTForms 或 BetterForms),它可以在服务器端和客户端使用。这允许您使用纯 X 技术获取任何字段(不仅仅是隐藏字段)的值。默认情况下,XForms 还包括 MVC,这非常好。但是,根据您的项目和已经存在的代码量,您可能需要进行很多更改,因为它是一项完整的技术。但通常这是避免使用 JavaScript 而使用 X* 的方法
You would need XQuery capabilities within the browser. MarkLogic runs server-side, so needs a round-trip (e.g. a submit). But you could have a look at XQiB: http://www.xqib.org/
HTH!
这个问题很模糊,可以用几种不同的方式来解释:如果你提出更好的问题,你会得到更好的答案。
但我会比 Geert 乐观一点。如果表单字段位于由服务器 XQuery 模块构建的 HTML 表单中,那么它的数据必须在该模块构建表单时可供该模块使用。在返回已完成的页面之前,安排您的代码,以便您可以将其用于任何需要的地方。
您可能正在寻找一些神奇的方法来针对实际运行的查询的半完整结果编写 XPath。如果没有您的一些工作,这是不可能的。您可以安排您的代码,使表单或隐藏字段是某个其他函数返回的节点,并编写相对于它的 XPath 以检索其值。如果隐藏字段是使用上一个 HTTP 请求中的请求参数构建的,您可以xdmp:get-request-field
再次调用。关键是安排您的代码,以便您在需要时拥有所需的数据。
https://github.com/mblakele/cq上的 XQuery 代码可能有一些有用的示例。它可以玩各种带有表单字段的游戏,无论是否使用 JavaScript。