关于全局变量的问题

gnefgnehz 2010-08-06 11:07:10
最近在做一个search功能,涉及到表单的提交和搜索结果的分页显示,因为每次点击分页链接的时候是没有提交表单数据的,所以我想到用一个全局变量将上一次提交的数据储存起来,以便于搜索。所以这里就碰到一个存储全局变量的过程。因为小弟初来乍到,不知如何解决,望高人指点,小弟不胜感激!
...全文
155 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
无天 2010-08-08
  • 打赏
  • 举报
回复
GET,或者POST都行吧。
用GET要对表单的 数据进行加密,用POST不会显示在url中,就不用直接加密了。
床上等您 2010-08-06
  • 打赏
  • 举报
回复
用 get 来做搜索,你会发现,原来复杂的搜索也如些简单,

看看 google 搜索的 url 你就知道如何做了。
yzxlyd 2010-08-06
  • 打赏
  • 举报
回复

$url = http_build_query($_REQUEST);
Dleno 2010-08-06
  • 打赏
  • 举报
回复
如果你提交过来的搜索数据是一个数组。
$_POST['search']
$_POST['search']['key'],$_POST['search']['type']等这些就是搜索条件。那你还可以:

$urlSearch = "?srarch=";
if(isset($_POST['search']) && is_array($_POST['search'])){
$search = $_POST['search'];
$urlSearch .= base64_encode(json_encode($search));
}else{
$search = json_decode(base64_decode($_GET['search']),true);
$urlSearch .= $_GET['search'];
}


分页的连接就是$urlSearch .= "&page=****"
CunningBoy 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dingsongtao 的回复:]

$_GET = array_merge($_GET, $_POST);

$url = "*****";
$_GET['key'] && $url .= "&key=".rawurlencode($_GET['key']);

$_GET['type'] && $url .= "&type={$_GET['type']}";


你……
[/Quote]
恩,很不错的思路
Dleno 2010-08-06
  • 打赏
  • 举报
回复
$_GET = array_merge($_GET, $_POST);

$url = "*****";
$_GET['key'] && $url .= "&key=".rawurlencode($_GET['key']);

$_GET['type'] && $url .= "&type={$_GET['type']}";


你就这样自己构造url,分页的连接就是$url.="&page=****"
wisword 2010-08-06
  • 打赏
  • 举报
回复
存储到文件或者数据库或者memcache或者共享内心中去
gnefgnehz 2010-08-06
  • 打赏
  • 举报
回复
好的,谢谢各位了啊~
Dleno 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 gnefgnehz 的回复:]

引用 10 楼 dingsongtao 的回复:

那个只在当前请求有效,你点了分页连接后就无效了,你只有使用其他方式来传递前面提交的数据,如get
对对!就是这种情况,不过可以具体地说明一下么,具体用get 如何实现? 我都折腾好几天了,真是个头疼的问题啊……
[/Quote]
你看下2,4楼的代码。都是用get实现
number123456 2010-08-06
  • 打赏
  • 举报
回复
将form里的method属性get了,这样,你就和平常处理链接一样简单
gnefgnehz 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gumwzg 的回复:]

用session保存吧
[/Quote]也想过用这种方法,不过session还没咋用过,能够举个简单的例子说明一下么,谢谢!
gnefgnehz 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dingsongtao 的回复:]

那个只在当前请求有效,你点了分页连接后就无效了,你只有使用其他方式来传递前面提交的数据,如get
[/Quote] 对对!就是这种情况,不过可以具体地说明一下么,具体用get 如何实现? 我都折腾好几天了,真是个头疼的问题啊……
gumwzg 2010-08-06
  • 打赏
  • 举报
回复
用session保存吧
Dleno 2010-08-06
  • 打赏
  • 举报
回复
那个只在当前请求有效,你点了分页连接后就无效了,你只有使用其他方式来传递前面提交的数据,如get
gnefgnehz 2010-08-06
  • 打赏
  • 举报
回复
我通过用 Zend_Registry::set() 和 Zend_Registry::get() 来设置和读取全局变量,但是同样不行,感觉对其作用域范围有点怀疑了……
gnefgnehz 2010-08-06
  • 打赏
  • 举报
回复
问题补充一下,是在Zend framework 里面 的全局变量问题!
xuzuning 2010-08-06
  • 打赏
  • 举报
回复
用url参数传递或用session保存
全局变量只在当前程序中有效

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧