簡體   English   中英

如何保存提交的HTML表單的服務器端副本?

[英]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參數。

檢查此鏈接如何在JavaScript中將字符串編碼為Base64?

如果獲得輸入的屬性和值並將其插入數據庫,該怎么辦? 這將節省您一些字節的空間,並使數據庫表易於閱讀和理解,因此當您必須生成PDF時,可以選擇然后“重新創建”相同的HTML表單。

PS:我知道答案來得有點晚,但我希望它對某人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM