【发布时间】:2013-05-25 16:43:47
【问题描述】:
我有一个名为 test_photo.php 的页面,人们在执行 POST 请求后会从表单中定向到该页面
<form id="search_photos" action="test_photo.php" method="post">
<select name="photographer" id="photographer">
<option selected="selected" value="x">Any Photographer</option>
</select>
<--Removed for clarity sake -->
<input name="Submit" value="Search Now >" id="Submit" type="submit">
</form>
在我们发布到 (test_photo.php) 的页面上,我们有分页来帮助分解显示的大量数据。这是由 GET 请求处理的,该 url 可能类似于 http://foobar.com/xpath/test_photo.php?page=0。
问题在于,每当有人在页面上执行获取请求时,POST 数据就会消失。有谁知道我们可以解决这个问题的任何方法。
【问题讨论】:
-
对此的理解是错误的。如果表单未提交或重新提交,则无法显示 POST 数据。如果您希望跨页面存储,请改用 GET 并使用 GET 值在下拉框中设置默认值。
-
我们可以正常发布到页面,当我们进入页面时,post 的 print_r 会显示: Array ( [LocationName] => 1 [photographer] => x [images] => x [提交] => 立即搜索 > ) 只有当我们在页面上执行获取请求时,我们才会遇到问题,因为发布数据没有跟随获取请求
-
@Artful_dodger:是的,这是设计使然。就像我说的,你不能定义 POST 变量,除非它是你刚刚提交表单的页面。它应该以这种方式工作。 POST 实际上只是单击提交按钮后最终得到的值。如果你做一个简单的 GET 请求,你不只是单击任何提交按钮。看到了吗?
-
提供一些来自 test_photo.php 的代码来查找错误。表格本身是不够的。另请记住,如果您要上传文件,则输入标签必须包含属性 enctype="multipart/form-data"
-
@AlejandroIván:这与本案无关。