当我在任何浏览器上点击“返回”时,我会失去在表单中输入的所有数据,包括下拉列表和文本输入类型。
这是服务器问题、浏览器问题还是编码问题?
谢谢
这是一个浏览器问题。当点击后退按钮时,浏览器的行为会有所不同——这种行为大多取决于用户隐私设置。此外,大多数浏览器在访问HTTPS连接的页面时,无论其HTTP连接的正常行为如何,都会自动重置表单。此外,许多依赖于AJAX的HTML表单不能正确或一致地恢复其先前的状态。
编辑 ----
既然你提到使用PHP和MySQL,假设你也在使用会话...当你点击后退按钮时,浏览器将不会预填充表单。使用PHP会话的页面不会被缓存到浏览器中,点击后退按钮返回上一页就像从头开始打开该页面一样——大多数浏览器不会恢复表单值。
这适用于PHP和IE8。
不仅必须将缓存设置为私有,而且必须删除4个缓存头,而这只能使用PHP 5.3完成。
在PHP 5.2中,如果使用Zend框架的setHeader()方法,则只能将4个头文件设置为空白值。由于某种原因,在IE8上将4个头文件值设置为空值是不足够的。这是PHP 5.3的代码:
header_remove("Expires");
header_remove("Cache-Control");
header_remove("Pragma");
header_remove("Last-Modified");