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

时间:2013-06-03 01:51:11

标签: html dropbox

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

是否有没有服务器保存HTML表单数据?

4 个答案:

答案 0 :(得分:1)

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

  1. 使用JavaScript
  2. 将数据保存在localStorage(或sessionStorage)中
  3. 使用JavaScript将其保存在Cookie中
  4. 使用method=GET,以便表单数据包含在请求URL中;如果您使用action=foo.html,则foo.html上的JavaScript代码将能够从document.location
  5. 中读取表单数据
  6. 使用action=mailto:...,这会导致表单数据通过电子邮件发送,前提是浏览器已配置为执行此操作。 (可能有人认为这不是完全没有服务器的,因为电子邮件将通过电子邮件服务器。)
  7. 所有这些方式都以允许以特殊方式访问数据的方式存储数据。

答案 1 :(得分:1)

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

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

或sessionStorage:

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

Browser compatibility WebStorage

如果你想确定你也可以使用Cookies和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')

访问序列化数据

答案 2 :(得分:0)

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

答案 3 :(得分:0)

真!?

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

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