我想知道,我们有这个由第三方提供的前端。他们在PHP网站上实现了这个设计(基于Symphony,与我的问题无关)。
问题是,他们使用了大量的Javascript,这对于动态部分来说很不错。但是,在提交表单时,数据也通过jQuery $ .ajax传输或发布。这意味着客户端将永远不会存储用户的输入以供将来使用,这实际上是他们想要的东西,因为这个前端设计为可以在x周或每月重复使用。任何人都知道是否有办法让表单表现得像是在发布?
另外,用户未登录,并且可能有多个用户,尽管它可能是他的私人系统,或在家中共享。很有可能它甚至会成为移动设备。
答案 0 :(得分:0)
您需要使用Cookie来保存表单数据,最好在提交后使用。在处理这样的事情时,我喜欢使用jquery.cookie。我会做这样的事情。这只适用于单个浏览器。
$( document ).ready(function() {
// Fetch the submit_form_input cookie that was set after submitting the form
var submit_form_input = JSON.parse($.cookie("submit_form_input"));
// Loop through the values inside the cookie
for (i = 0; i < submit_form_input.length; i++) {
// Find the form with the correct id and set the value on it
$("#" + submit_form_input[i].name).val(submit_form_input[i].value);
}
$("#submit_form").submit(function(ev) {
ev.preventDefault();
var url = $(this).attr('action');
var data = JSON.stringify($(this).serializeArray());
$.ajax({
type: "POST",
url: url,
data: $(this).serialize(), // serializes the form's elements.
success: function(response)
{
// Set the cookie
$.cookie("submit_form_input", data);
alert('Thank you for submitting the form.');
}
});
});
});
这是JSFiddle。