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

时间:2011-06-14 05:17:17

标签: php javascript jquery

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

现在,我想尽可能多地保留在客户端,直到用户最终点击提交并且整个事情立即进行。处理开始/结束日期和全球时间很容易,但我如何以有组织和可靠的方式跟踪个别日期的信息?每天可能会有许多字段的不同值(不同的开始/结束时间,描述,标题等......)

3 个答案:

答案 0 :(得分:1)

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

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。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我不完全理解这个问题,但你可能想制作一个javascript数组(真的是一个对象)。将每一天存储在数组中,对象键是日期,数据是属于该日期的任何数据。

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

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