当我点击任何浏览器时,我丢失了表格中输入的所有数据,包括下拉和文本输入类型。
这是服务器,浏览器还是编码问题?
谢谢
答案 0 :(得分:9)
这是一个浏览器问题。单击后退按钮时,浏览器的行为会有所不同 - 此行为主要取决于用户隐私设置。此外,大多数浏览器会在通过HTTPS连接查看的页面按回按钮时自动重置表单,而不管它们是否正常用于HTTP连接。此外,许多严重依赖AJAX的HTML表单没有正确地 - 或者一致地 - 恢复它们之前的状态。
编辑----
现在您提到使用PHP和MySQL,假设您也在使用会话......当您点击后退按钮时,浏览器不会预先填充表单。 PHP会话驱动的页面不会缓存在浏览器中,回击按钮返回上一页就像从一开始就再次打开该页面 - 大多数浏览器都不会打扰恢复表单值。
答案 1 :(得分:2)
这适用于PHP和IE8。
您不仅必须将缓存设置为私有,而且必须删除4个缓存标头,这只能通过PHP 5.3完成。
在PHP 5.2中,如果使用Zend Framework的 setHeader()方法,则只能将4个标头设置为空值。由于某些原因,在IE8上将4个标头值设置为空值是不够的。这是PHP 5.3的代码:
header_remove("Expires");
header_remove("Cache-Control");
header_remove("Pragma");
header_remove("Last-Modified");
答案 2 :(得分:1)
您需要为浏览器创建sticky forms,以便在按下后退时保留表单数据。它很容易做到,请查看搜索链接中的教程。