【发布时间】:2012-12-15 06:52:24
【问题描述】:
现在我知道我有可能在这里提出重复的问题,但是我真的不知道要搜索什么,因为我是一个完整的 AJAX jQuery 菜鸟。相信我,我已经尝试搜索我认为显而易见的东西,但没有运气,所以请放轻松。
我有一个 php wordpress 网站,默认以英镑显示价格。顶部是一个带有onchange="this.form.submit()" 的选择框,允许用户更改所有报价的默认货币。
<form method="post" action="">
<select name="ChangeCurrency" onChange="this.form.submit()">
<option value="GBP">GBP</option>
<option value="USD">USD</option>
<option value="EUR">EUR</option>
</select>
</form>
主页上有几个,我称之为“短代码小部件”,每个都包含产品和价格表。如果您愿意,可以使用仪表板。
目前的工作方式(低效):
- 用户更改选择。
- 已提交表单
- 主页重新加载了所选货币的最新价格。
这不好,因为每当有人更改货币时,整个页面都会重新加载(这需要时间,在没有缓存的情况下传输大约 1mb,更不用说服务器上不必要的负载了)。
我想要的(更高效):
- 更改选择框时,我希望异步发布更改货币会话变量的表单。
- 每个“短代码小部件”都会一一更新,而无需重新加载整个页面。
这是jquery可以做到的吗?我从哪里开始?
以防万一它有什么不同,以便您明白我的意思,这里是 URL,以便您可以看到我在说什么...http://bit.ly/10ChZys
第 2 部分: 由于下面的答案混搭,我使用 jQuery 和 ajax 来更新 fixTable...我使用会话变量来存储用户的选择,这样,如果他们返回站点,选项将被保存。
我的代码有问题,因为存储在 http://goldealers.co.uk/wp-content/plugins/gd/tables.php?currency=GBP&table=fixTable 中的会话变量似乎与用户的会话 ID 具有不同的 session_id,因为不再存储该选项。
有没有办法告诉服务器它们是同一个会话?
解决方案 我使用 Ribot 的解决方案开始使用并解决了最初的问题,然后使用 NomikOS 的解决方案进行扩展......
【问题讨论】:
-
页面上有多少需要价格货币的产品?
-
它是表格产品定价。大约有 7 个表(简码小部件),每个表大约有 14 个需要更改的价格。目前在加载页面时以 php 计算价格。
标签: php jquery ajax forms wordpress