我们已经使用HTML表单创建了一个调查问卷。表单通过一个典型的ajax调用提交,如下所示:
$.ajax({
url: sendResults.attr('action') + "?ajax=true",
type: sendResults.attr('method'),
data: sendResults.serialize(),
success: confirm
});
但是,我们希望将提交的表单HTML的副本保存到服务器(而不是数据库中),以便可以将其呈现为PDF并附加到从另一个PHP脚本发送的确认电子邮件中。此HTML应包含复选框和单选按钮的“选中”状态,因为它们已被用户更改。表单中没有文本区域。
这样做的一种方法是通过javaScript选择表单HTML,如下所示:
var html = "<html>" + document.getElementById('myForm').innerHTML + "</html>";
然后通过更改以下行来序列化并提交此HTML和表单数据:
data: sendResults.serialize() + "&answers=" + html
但是,这需要ISP覆盖操作PHP脚本的一些防火墙规则,这可能不是好的做法,而且可能存在安全风险!
因此,假设“正常”的序列化表单数据只是一个整数数组,那么是否有任何已知的方法可以将这些值“应用”到存储在服务器上的默认HTML表单,从而在提交表单时将其呈现为PDF并附加到电子邮件中?
提前感谢您的帮助。
发布于 2016-01-12 18:02:33
尝试对html内容"&answers="+btoa(html)
进行编码
在服务器端解码回来。
我还建议使用post请求,而不是使用url参数。
发布于 2016-11-19 01:43:20
如果您获得输入的属性和值并将其插入到数据库中,该怎么办?它将为您节省一些字节的空间,并使您的数据库表易于阅读和理解,因此当您必须生成PDF时,您可以选择并“重新创建”相同的HTML表单。
附言:我知道现在回答有点晚,但我希望它能帮助一些人。
https://stackoverflow.com/questions/34750565
复制相似问题