我有三个页面,上面有表单。它们都互相引导。第一个页面有一个转到第二页并查询数据库的表单。我知道POST方法应该在这里使用(根据RFC1866第8.2.3节)。但我想在这个页面上实现GET方法,因为当用户在第二页时,他们会在那里选择选项并转到第三页,但当用户在第一页时,可能需要使用浏览器返回按钮返回第二页来更改一些值。如果使用POST方法,它将提示用户"重新提交",我希望避免这种情况。
?page=one ?page=two ?page=three
__________ __________ __________
| | | | | |
| | | | | |
| Page 1 | ==> | Page 2 | ==> | Page 3 |
| | | | <== | |
| | | | | |
|__________| |__________| |__________|
我面临的问题是URL的问题,当将action设置为"?page=2"时,输入名称不会像将action设置成"pagetwo.php"那样被拾取并放入URL中(这会变成pagetwo.php?data=x)。我如何绕过这个障碍?
如果我正确理解您的问题,那么您可以添加一个值为two
、名称为page
的隐藏输入。这将导致它们与您的其余输入一起附加到您的url。
<input type="hidden" name="page" value="two" />
如果我理解正确,你想使用GET的唯一原因是跟踪用户所在的页面。为什么不继续使用POST,并在表单的每个页面上放置一个隐藏字段。
在第一页:
<input type="hidden" name="page" value=1">
二:
<input type="hidden" name="page" value=2">
等等。。。
您有3个选项。。。
您可以使用隐藏输入,也可以使用SESSION或Cookies。。
就我个人而言,我会使用SESSION,它更容易处理。。