我试图满足用户使用浏览器返回按钮访问包含多个下拉列表的页面的需求(其中一些列表显示在使用jQuery选择其他列表时)。当用户选择房间,进入下一页,使用浏览器返回按钮返回并做出不同的选择时,我将在页面加载时重置下拉列表。当用户再次使用Chrome和IE时,我得到了以下正确的数组结构:
Array
(
[15] => Array
(
[12] => Array
(
[num_rooms] => 0
[price] => 39.5
)
[15] => Array
(
[num_rooms] => 1
[adults] => Array
(
[0] => 2
)
[prices] => Array
(
[0] => 49.5
)
[roomTotalPrice] => Array
(
[0] => 49.5
)
[price] => 99
)
[14] => Array
(
[num_rooms] => 0
[price] => 49
)
[16] => Array
(
[num_rooms] => 0
[price] => 39.5
)
[13] => Array
(
[num_rooms] => 0
[price] => 39.5
)
)
这正确地显示了所选房间/价格组合的"成年人"数量,房间15和价格15。当我在Firefox中运行完全相同的代码时,数组会以以下方式损坏:
Array
(
[15] => Array
(
[12] => Array
(
[num_rooms] => 0
[price] => 39.5
)
[15] => Array
(
[num_rooms] => 1
[price] => 99
)
[79] => Array
(
[adults] => Array
(
[0] => 2
)
[prices] => Array
(
[0] => 49.5
)
[roomTotalPrice] => Array
(
[0] => 49.5
)
)
)
与其将"成人"数据添加到房间/房价15中,不如将其添加到不存在的房价"79"中。
关于Firefox为什么会这么做,有什么建议吗?
在页面中添加以下代码阻止了Firefox缓存数据并解决了问题:
<?php
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
?>