2013-03-07 136 views
1

我有一个表单,它会将用户发送到其他表单,因为他们没有完成回到表单并完成任何错过的操作。现在,除非用户按下浏览器后退按钮,否则页面将被加载,这意味着任何数据都会丢失。在PHP/Javascript中调用浏览器后退按钮

当他们回到上一页时,他们已经填写的内容应该保持不变。

我有以下两页:

第1页:

<?PHP 

echo "<a href='page2.php'>NEXT</a>"; 
echo "<input type=text size=25 name=txt />"; 
?> 

第2页:

<?php 
$refer = $_SERVER['HTTP_REFERER']; 
$lastlink = "<a href='$refer'>BACK</a>"; 

echo $lastlink; 
?> 

第二页,如果我单击后退回来第1页,什么进入第1页将会丢失,这是我不想要的。 如何在不使用Javascript的情况下解决它?用Javascript? 我知道了JavaScript我可以使用

<a href="javascript:history.go(-1);">BACK</a> 

但是,有另一种方式吗?

回答

2

看一看html5 history api。历史API + Ajax是伟大的组合

+0

任何想法如何创建它,因为我不是历史api上的整个事情: – Si8 2013-03-07 21:38:49

+1

您可以推送页面状态以及稍后在历史记录中导航,onpopstate事件被调用,您可以获取最近推送的状态并使用它。你可以阅读提供的教程。 – karaxuna 2013-03-07 21:41:12

1

我通常满意:

history.back(-1); 

使用服务器端逻辑发送回前一个页面,是不是做一个很好的办法,所以我会disencourage它。

2

您也可以使用会话来存储$_POST进行提交,并检查它是否设置为第一个表单的页面加载。

+0

如果我有50个文本框,使用后将是非常耗时和缓慢,但谢谢:) – Si8 2013-03-07 22:38:25