5

现在我有一个允许对一些项目进行排序的 JSP 页面,当准备好并单击链接时,JavaScript 函数将所有信息转换为 XML(变量中的文本),之后我需要将此 XML 发送到 JSP 页面再次,我尝试将信息放在隐藏的输入中并提交表单,使用 $.post 和更多的 jQuery 函数发送,但没有任何效果。有任何想法吗?

在我的 JSP 中,我正在阅读这样的帖子:

<% out.println(request.getParameter("data")); %>

这不起作用:

xml = "<xml></xml>";
$("#form").submit(function(){
   alert("JS: " + $("#data").text());
   $("#data").text(xml);
});

这要么:

xml = "<xml></xml>";
$("#data").text(xml);
$("#form").submit();

用 .html 替换 .text 也不起作用。欢迎任何想法,thx

4

3 回答 3

4

你可能在这里走错路了。您没有提供 html 代码,但我认为它是这样的:

<form method="POST" id="form">
    <input type="hidden" id="data" />
</form>

如果这是正确的,那么你应该说,$("#data").val(xml);而不是text()或者html()因为那些用你提供的文本或 html 改变匹配的东西。这应该适用于您当前的解决方案。

此外,我建议将 jQuery$.post()和其他人视为将所有内容打包为 xml 的替代方案,除非这确实是您在后端想要的。使用由某些名称键入的所有值组成一个 javascript 对象并将其传递给 jQuery$.post(), $.get()等之一可能会更容易,如下所示:

var values = {name: "John", surname: "Doe"};
values.age = 25;
$.post("index.jsp", values); // this will result in a post with 3 variables: name, surname, age

实际上,我现在才想到您也可以通过这种方式发送 xml(除非您更喜欢自己的做事方式):

$.post("index.jsp", {data: "<xml><whatever-else-needs-to-be-in-here/></xml>"});

您可能想在这里更多地启发自己:Ajax @ jQuery docs

于 2008-12-30T21:38:23.423 回答
2

尝试使用jQuery Ajax API - 您可以使用它通过 GET 或 POST 发送任意数据,而无需设置隐藏表单或任何东西。

于 2008-12-30T19:12:20.690 回答
1

您总是可以使用 XMLHttpRequest 来发送数据。这可以通过我们在表单提交按钮等元素上无需用户交互来完成。jQuery 具有内置的功能来协助处理此类请求。

http://docs.jquery.com/Ajax

于 2008-12-30T19:05:49.563 回答