无论用户何时尝试通过$ _GET浏览第二页,如果他们已经提交了$ _POST数据,我都会遇到问题。
if(!isset($_POST['submit'])) {
//search input box
}
else {
//search details output
//pagination code
}
每当用户按下第2页,它显示//search input box
回来。
我想搜索显示页面2而不是//search input box
回来。
无论用户何时尝试通过$ _GET浏览第二页,如果他们已经提交了$ _POST数据,我都会遇到问题。
if(!isset($_POST['submit'])) {
//search input box
}
else {
//search details output
//pagination code
}
每当用户按下第2页,它显示//search input box
回来。
我想搜索显示页面2而不是//search input box
回来。
As @Alan说...第2页没有收到POST
数据,所以submit
没有设置,它认为应该再次显示起始格式。第二GET
变量(例如page
)跟踪的结果页,将允许所有三个页面(启动,第1页+提交,第2页)
if (isset($_REQUEST["page"])) {
//No data received, but reviewing & page-display code should go here
} elseif (isset($_POST["submit"])) {
//POST-processing code goes here
// Page-switching URL should be something like:
// <a href="results.php?page=2">Page 2</a>
} else {
//Nothing posted, not paging - show input
//search input box
}
不要忘记存储你的数据POST
暂时地方,这样你有数据显示在页面上。
类似于您的逻辑的接缝扭曲。只需看看你的代码和附加评论:
// if POST submit is NOT set
if(!isset($_POST['submit'])) {
// show search input box
}
这是因为你没有发送POST数据到第二页。
$_GET
和$_POST
是根据请求设置的。如果要保存第一个POST数据,则需要使用会话并将其存储在会话中,或将POST数据返回到您的页面并重新提交。
获取该值。 – cicakman 2010-10-27 13:54:46
它会是怎样的?正如其他人所说的,你需要告诉我们更多关于你在做什么以及你想要我们帮助的事情。 – 2010-10-27 14:03:35
您不应该通过POST提交搜索请求。搜索是一种理想适用于GET请求和查询字符串的只读操作。您所要做的就是修改查询字符串,以包含类似&page=2
的内容,以便将链接添加到链接中。
更好的方法是将表单处理分割成自己的脚本。这使得它更有组织和更合理,以便您可以通过AJAX更轻松地执行POST等操作。解决我看到的其他问题的提示是,如果您有多页表单,则应将它们在前一页上提交的数据存储在某处。一个常见的地方是会话数据。还有其他一些方法可以将它们全部存储在JavaScript数据对象中,直到表单完成。看看使用框架,他们会帮助。
好的,但是有什么问题? – 2010-10-27 13:53:11
我不确定你的问题是什么......我认为你正在寻找'$ _REQUEST ['']'。如果提交'$ _GET ['asdf']'或'$ _POST ['asdf']',那么您可以通过'$ _REQUEST ['asdf']' – Entity 2010-10-27 13:53:57