如何可靠地存储复杂的表单数据以供提交

How to reliably store complex form data for submit

本文关键字:数据 表单 提交 复杂 何可 存储      更新时间:2023-09-26

我正在创建一个约会web应用程序,用户可以在其中选择事件的开始日期和结束以及全局开始时间和结束时间。在最后一个屏幕上,我允许用户编辑我使用jQuery Full Calendar插件显示的事件期间的任何一天。

现在,我想尽可能多地将其保留在客户端,直到用户最终单击提交,整个过程一次完成。处理开始/结束日期和《环球时报》已经很容易了,但我该如何以有组织和可靠的方式跟踪每一天的信息?每天可能有不同的字段值(不同的开始/结束时间、描述、标题等)

通过JSON将数据发送到服务器将是一个理想的解决方案。您应该查看jQuery的serializeArray(),它将序列化准备发送的表单。然后,您可以使用$.post通过ajax提交数据,并在success回调函数中向用户显示结果。

http://api.jquery.com/serializeArray/

http://api.jquery.com/jQuery.post/

<form id="yourform" action="" method="post">
    <input type="text" id="t1" />
    <input type="submit" id="save" />
</form>

然后JavaScript将是

$(document).ready(function()
{
    $("yourform").submit(function()
    {
         var data = $(this).serializeArray(); 
         var url = "yoururl.com/handler.php";
         $.post(url, data, function(result)
         {
             $("feedback").html(result); //show result
         });
    });
});

注意,我还没有测试过上面的代码,这只是一个粗略的指导原则。您的表格需要正确填写,以便采用上述方法。我只是放了一个示例表单,向您展示.submit()如何链接到表单ID。

您可以将数据以json格式发送到服务器。类似:

day = {
    startTime: someDate,
    endTime: someOtherDate
    ....
}

我不完全理解这个问题,但您可能想要创建一个javascript数组(实际上是一个对象)。将每天存储在数组中,对象键是日期,数据是属于该日期的任何数据。

(或者只是一个包含所有日期的常规数组,将日期作为数组元素中的另一个字段。)

然后使用jQuery.praram()将该数组或对象发送到服务器。