2010-07-12 109 views
2

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

这个事情可以使用HTTP cookies轻松完成。但我不想使用Cookie。
答案可以很简单的“不,你不能这样做” :)

编辑
这与没有正确措辞的问题的问题。

我想我不能使用数据库,就好像我将我的HTML页面发送给某人然后他/她将无法看到我的更改。我希望我的更改也反映在其他系统上。 [多数民众赞成在我没有去cookies的原因]。其他解决方案,我在想,是使用FileSystemObject。其他解决方案?再次,答案可能是“不,你不能这样做”:d

回答

2

你可以在你的表单元素的改变事件绑定到AJAX提交,登录提交到数据库,然后在任何页面加载抢来自数据库的最新状态用于渲染。

编辑

如果你想这些变化出现“同时”其他用户,那么你可以使用jQuery轮询来更新页面 - 在页面定期轮询的最新状态的服务器。

话虽如此,如果你给他们一个服务器链接,而不是实际的文件,他们看到你的分贝变化。

然而,这听起来像你想实际发送文件(不派人到Web服务器),在这种情况下,你可以不喜欢这些方法之一:

  • 你的PHP /任何文件(甚至可以用javascript做到这一点)输出一个HTML文件与适当的checked="checked",selected="selected",value="blah"等您发送此文件。

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

+0

我喜欢你的答案,但我想重新框架我的问题:) – 2010-07-12 08:11:21

+0

+1反正..... – 2010-07-12 08:14:28

+0

增加了一个更新,让我知道如果它的轨道 – 2010-07-12 08:33:03

0

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

我听说HTML5中可能存在其他选项,但我不认为这些可以在这个时候认真使用。你可以在这里阅读Offline Web Applications。在我看来,就像在精神上非常相似的东西,虽然比饼干更强大。

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 - 但您仍然受限于浏览器。

+0

'-1'的ActiveX,对不起。 – 2010-07-18 23:45:02

+0

@Delan Azabani - 这有点不公平!我绝不会在一个普通的Web应用程序中推荐ActiveX,但考虑到他正在尝试做什么(即在磁盘上的HTML文件中使用Javascript来更改该文件),他没有多少选项。 – Keith 2010-07-19 12:33:17

+0

够公平的,我明白你的意思。 :) – 2010-07-20 07:48:42