html - 如何将 HTML 小部件的值从 HTML 表单传递到 eXist-db 中的 Xquery?
问题描述
在我看来,这个问题代表了先前请求中指出的特定问题的普遍化:请参阅相关问题(这就是我敢于发送第二个帮助请求的原因)。对于如何将 html 小部件的值传递给 Xquery 的问题,我仍然找不到答案。
特定的小部件是一个文本区域,通过外部函数添加到 html 表单(而不是 XForm!),其代码可以在提到的相关问题中找到。所以,相关的 html 代码块(一旦函数被执行)是这样的:
<form method="post" action="query_update_notabene.xq">
<textarea id="my_textarea">loaded_text</textarea>
<br>
<table border="0">
<tr>
<td>
<input type="submit" value="Salva nota">
</td>
<td style="width: 20px;"></td>
<td>
<input type="reset">
</td>
</tr>
</table>
</form>
在我的“query_update_notabene.xq”中,我根本无法获取 textarea 值,该值对应于要保存回 xml 文件的文本内容(新的或编辑的)。关于以下两种可能性,我已经尝试了所有我能想到的口味:
let $nota_text := request:get-parameter("my_textarea","")
let $nota_text := request:get-data()
但似乎没有任何效果,甚至没有:
let $nota_text := request:get-data()/body/form/div[@id='main']/textarea[@id='my_textarea']/text()
任何人都可以帮忙吗?
谢谢
亚历克斯
解决方案
当我找到解决方案时,我自己回答。像往常一样在编程中不能使用类比,必须非常精确!错误是在这里使用“id”而不是“name”:
<textarea id="my_textarea">loaded_text</textarea>
这意味着,回到构造 Xquery,以下内容:
<textarea id="my_textarea">{$my_content}</textarea> };
必须改为:
<textarea name="my_textarea">{$my_content}</textarea> };
因此,Xquery 现在可以通过一个简单的方法来掌握 textarea 的内容:
let $nota_text := request:get-parameter("my_textarea","")
推荐阅读
- c# - 我如何知道 Excel 应用程序属性已更改(例如:UseSystemSeparator)或已选择自定义选项卡?
- ruby-on-rails - 如何在 Google Cloud Build 中构建 Docker 映像并在后续构建步骤中使用?
- c - 如何在检查变量的函数中使用 printf?
- c# - IEnumerable<> vs List<> 作为参数
- fortran - Valgrind (Helgrind) 误报?
- android - Android:在另一个不发射的情况下收集 Kotlin Flow
- c - 在 C 中将负整数转换为更大的无符号整数
- camera - 将一个盒子从世界投影到图像平面
- r - gsub() 无法识别和替换某些重音字符
- python - 清理列标题的更有效或“pythonic”方式是什么?