如何将div的html内容作为表单参数传递给服务器

时间:2016-12-09 06:19:50

标签: javascript html

将HTML数据传递到服务器的最佳方法是什么。 我有一个htmlPage,其div。我想将此innerHTML的{​​{1}}传递给服务器,以便我可以将其保存在会话中并稍后重新创建div在编辑流程中。 我创建了一个隐藏的字段:

div

在这个隐藏字段中,我想设置<input type="hidden" name="selectedTemplateHtml" id="selectedTemplateHtml" /> 的HTML并发布到服务器。 请建议。 我尝试使用div简单地从div传递html但是在编辑流程中我们检索存储的值它会给出异常,因为它不能将HTML存储在javascript变量中,因为HTML跨越了很多行。 请建议。

在我的情况下,我能够使用换行符发布请求,并且我能够取回我发布的html,但是当我尝试将其存储在javascript变量中时,由于新的行字符和双引号,它给出了错误

@Alexander 以下代码用于在编辑流程中显示html:

$("#divName").html()

它在第一行的浏览器控制台中提供异常,即:。

cdHtml="${postAdBean.cdHtml}";
templateId="${postAdBean.templateId}";
$("#"+templateId).html(cdHtml);

这是因为它无法将从服务器返回的html转换为javascript字符串。

1 个答案:

答案 0 :(得分:0)

好的,我得到了它的工作: 在隐藏字段中设置html之前从客户端我编码:

selectedTemplateHtml=encodeURIComponent(selectedTemplateHtml);
$("#selectedTemplateHtml").val(selectedTemplateHtml);

这是逃避某些角色的必要条件,例如&amp;在HTML中,否则可能会导致问题。

在java中: 字符串

cdHtml=URLDecoder.decode((request.getParameter("selectedTemplateHtml")),"UTF-8");
cdHtml=cdHtml.replace("\n"," ").replace("\r", " ").replace("\t", " ");
cdHtml=cdHtml.replace("\"", "\\\"");

即。首先我解码html然后替换所有换行符并转义双重代码。然后我将html发送回浏览器,它可以在javascript中轻松分配,没有任何问题。