2

我在 Dropbox 上有一个我喜欢玩的网站,但我没有个人服务器。

无论如何都可以在没有服务器的情况下保存 HTML 表单数据?

4

4 回答 4

1

您可以轻松地将表单存储在 localStorage 上:

localStorage.setItem('formData', $('form').serialize());

或会话存储:

sessionStorage.setItem('formData', $('form').serialize());

示例需要jQuery,并将来自所有表单的序列化数据存储在当前文档中。如果您只想保存单个表单或特定字段,您可以更改form为另一个有效的 jQuery 选择器:http ://api.jquery.com/selector/

您可以使用localStorage.getItem('formData')(localStorage) 或sessionStorage.getItem('formData')(sessionStorage) 访问序列化数据。

LocalStorage 与大多数浏览器兼容。见:http ://www.html5rocks.com/de/features/storage

浏览器兼容性 WebStorage

如果您想确定您也可以使用 Cookie 和 JavaScript。
你可以使用这个 JS 函数来创建/删除 cookie:

function setCookie(name,value,mins) {
    var expires = "";
    if (mins) {
        var date = new Date();
        date.setTime(date.getTime()+(mins*60*1000));
        expires = "; expires="+date.toGMTString();
    }
    else expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

以下是如何使用 JavaScript 的示例:

setCookie('formData', $('form').serialize(), 525600);

您可以使用 访问序列化数据getCookie('formData')

于 2013-06-03T06:48:33.527 回答
1

有四种方法可以在没有服务器的情况下存储表单数据:

  1. 使用 JavaScript 将数据保存在 localStorage(或 sessionStorage)中
  2. 使用 JavaScript 将其保存在 cookie 中
  3. 使用method=GET以便表单数据包含在请求 URL 中;如果您使用action=foo.html,则 foo.html 中的 JavaScript 代码将能够从document.location
  4. use action=mailto:...,它使表单数据通过电子邮件发送,前提是浏览器被配置为这样做。(可能有人认为这不是完全无服务器的,因为电子邮件将通过电子邮件服务器。)

所有这些方式都以仅允许以特殊方式访问数据的方式存储数据。

于 2013-06-03T06:02:51.460 回答
0

真的!?

好吧,如果要使用或学习,我建议使用USBWebserver(仅限 Windows)

它即插即用,只需下载点击 .exe,您就有了一个运行 php 和 mysql 的本地网络服务器。

于 2013-06-03T07:06:07.817 回答
0

您可以通过安装 XAMPP http://www.apachefriends.org/en/xampp-windows.html在自己的计算机上轻松设置服务器。然后你可以做所有你喜欢的测试。XAMPP 将设置 PHP、MySQL 和 Apache(以及一些工具)来让您进行一些测试,并且它自包含在一个文件夹中。

于 2013-06-03T02:49:26.623 回答