0

我有这个代码:

<img src="{$img_dir}/product_grid_view.png" class="pgrid" title="Grid View" onclick="document.getElementById('product_list').id = 'product_grid'; return false"></img>
<img src="{$img_dir}/product_list_view.png" class="plist" title="List View" onclick="document.getElementById('product_grid').id = 'product_list'; return false"></img> 

以下代码运行良好并完成了它的工作,但主要问题是它不会在我刷新页面后保存新值并继续恢复为product_list.tpl 文件中提到的默认值,如下声明<div id=product_list" class="clearfix">

任何关于此事的建议将不胜感激!

4

3 回答 3

2

如果您希望数据在页面刷新之间持久存在,那么您必须将其存储在持久的地方。

这可能是客户端可访问的某个地方(例如在 cookie 中),然后在页面重新加载时根据那里的数据重新应用更改。

或者,您可以使用 Ajax 将更改通知服务器,并让服务器将数据存储在某处(例如数据库中),并在请求页面时根据该数据生成不同的数据。

(然而,动态更改 id 是一件可怕的事情)。

于 2012-12-17T13:42:15.143 回答
1

简短的回答:不可能(至少,不像你的例子)。

Javascript 是客户端,当您刷新页面时,将创建服务器端。

如果你真的想要这个,你应该保存服务器端的值(通过使用AJAX)并在重新加载页面时使用这个值。但我真的不认为你想这样做只是为了交换 id(这首先很奇怪)。

于 2012-12-17T13:40:20.940 回答
0

你正在做的事情只发生在客户端。它不会更改您的.tpl文件。为了更新它,您应该在服务器上发送信息,例如使用ajax,并使用 PHP(据我了解,这是您正在使用的服务器端语言)将新 id 保存到数据库中,并将其填充到您的.tpl文件中下次页面是加载。

同时 - 不清楚为什么需要以这种方式更改元素的 ID。看起来你做错了什么。

于 2012-12-17T13:44:24.523 回答