如何保存HTML页面的输入值?

时间:2010-07-12 07:25:02

标签: javascript jquery html

现在,这个要求可能看起来很奇怪。但我想知道如何实现这个目标? 我有一个HTML文件,它有几个输入框,复选框,单选按钮等。我想保留用户[实际我]在此页面上执行的更改。就像用户勾选了一个复选框一样,下次打开该文件时,任何人都应该看到勾选的复选框。

使用HTTP cookie可以轻松完成此事。但我不想使用cookies 答案可以简单到“不,你不能那样做”:)

修改
  这是没有正确处理问题的问题。

我想我不能使用DB,好像我会将HTML页面发送给某人,然后他/她将无法看到我的更改。我希望我的更改也能反映在其他系统上。 [这就是我不去寻找饼干的原因]。我正在考虑的其他解决方案是使用FileSystemObject。还有其他方法吗?再一次答案可以是“不,你不能那样做”:D

3 个答案:

答案 0 :(得分:2)

您可以将表单元素的更改事件绑定到AJAX提交,将提交记录到数据库,然后在任何页面上加载从数据库中获取最新状态以进行呈现。

修改

如果您希望这些更改对其他用户“同时”显示,那么您可以使用jQuery轮询更新页面 - 让页面定期轮询服务器以获取最新状态。

话虽如此,如果您给他们一个服务器链接而不是实际文件,他们看到您的数据库更改。

然而,听起来你想要实际发送文件(不是将某人发送到网络服务器),在这种情况下你可以采取以下方法之一:

  • 您的PHP /任何文件(甚至可以使用javascript执行此操作)都会输出包含相应checked="checked"selected="selected"value="blah"等的HTML文件。您发送此文件。

  • 您的PHP /任何文件都会输出静态参考文件。您的HTML文件具有javascript引用并使用此文件中存储的值。您可以发送这两个文件(尽管值更新只需要更改的静态参考文件)。

答案 1 :(得分:1)

我听起来你想用Javascript更改实际文件 - 这应该是相当困难的。 Javascript是从头开始设计的一种Web脚本语言,因此它没有任何内置的文件/ IO功能。

你在Javascript中可以做的是加载ActiveX对象和插件。这是如何工作的很大程度上取决于您使用的浏览器。例如,在IE中你可以加载一个可以编辑文件的ActiveX对象(用VB或其他编写):

var fileWriter = new ActiveXObject("My.FileWriter");
fileWriter.Update("myFile.htm", "inputName", "newValue");

您必须编写FileWriter实用程序。

或者您可以使用HTML5's new data storage stuff - 但是您仍然可以使用浏览器。

答案 2 :(得分:0)

当用户再次访问时,您需要一些方法来识别用户。浏览器cookie很有用,因为它存储在用户的计算机上,该计算机用作标识。另一个严肃的选择是将用户的首选项存储在数据库中。这至少需要服务器端语言。此外,您需要某种方式来识别用户,例如用户名,或者不太可靠的IP地址。

我听说HTML5中可能存在其他选项,但我认为目前不能认真对待这些选项。您可以在Offline Web Applications中阅读此处。在我看来,它的精神非常相似,虽然比饼干更强大。