[英]how to save a server-side copy of submitted HTML form?
我們使用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並附加到電子郵件中?
在此先感謝您的幫助。
嘗試編碼您的html內容"&answers="+btoa(html)
將其解碼回服務器端。
我還建議您使用發布請求,而不要使用url參數。
如果獲得輸入的屬性和值並將其插入數據庫,該怎么辦? 這將節省您一些字節的空間,並使數據庫表易於閱讀和理解,因此當您必須生成PDF時,可以選擇然后“重新創建”相同的HTML表單。
PS:我知道答案來得有點晚,但我希望它對某人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.