使用get而不是表单中的post来处理像index.php这样的url?page=主页



我有三个页面,上面有表单。它们都互相引导。第一个页面有一个转到第二页并查询数据库的表单。我知道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,它更容易处理。。

最新更新