我的意思是,这个问题代表了之前请求中的一个具体问题的通用化。见相关问题 (这也是我敢于发出第二个帮助请求的原因)。我仍然找不到如何将html widget的值准确地传递给Xquery的问题的答案。
具体的widget是一个textarea,通过外部函数添加到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","")