首页 >后端开发 >php教程 >求不使用搜索框的方式网址累积叠加的方法

求不使用搜索框的方式网址累积叠加的方法

WBOY
WBOY原创
2016-06-23 14:13:187099浏览

搜索 浏览器

index.php?chid=4&ccid18=197 
这是个网址,如何让点击下一个连接的时候这个网址在浏览器地址栏里的地址变成
index.php?chid=4&ccid18=197&ccid17=166
也就是说增加了个
&ccid17=166 
在点击下下一个网址就叠加成了
index.php?chid=4&ccid18=197&ccid17=166&ccid18=196 
在一次增加了个
&ccid18=196
这个地址呢?
求不使用搜索框的方法方式。 
这里高手很多,上次在这里解决了个重要的问题,今天又来了,非常感谢!

回复讨论(解决方案)

定义链接就是了
给出你的页面

详细点吧,我是用两个js组合起来弄的一个搜索查询,
&ccid18=196
这种连接是查询的字段
所以每叠加一个就多一个查询的条件,查询出来的东西就更细致了

http://www.lyfcw.com/mobile/search.php?chid=4&ccid1=207&ccid17=166 页面在这里。现在选择下拉框的时候选中一个,上面的列表就只有一个,我需要弄成组合的搜索方式

也就是说,我在区域里面选择了涧西的话,其他的几个选项在选择的时候,涧西的选择依然存在

做一个或多个,记下$_GET有需要的值
客户端用js把各个input type组合起来再发送就是(不一定需要submit)

另一种做法更简单,php直接写一个js变量,值就是当前网址,js再处理??改变就替换,增加就拼接,然后location

简单就是
跳转的url = window.location.href + (window.location.href.indexOf('?') ? '&':'?')+ ccid的name + '=' + ccid的值)

'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
这个是当前网址
然后你在这个基础上附加 你的变量就好

非常感谢各位大侠

'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
这个是当前网址
然后你在这个基础上附加 你的变量就好


简单就是
跳转的url = window.location.href + (window.location.href.indexOf('?') ? '&':'?')+ ccid的name + '=' + ccid的值)


说详细点吧,我测试了下,还是没搞定啊

你给个测试页面,并说明需求

http://www.lyfcw.com/mobile/search.php?chid=4 测试页面是这个,需求 就是区域价格用途状态能同时选择,组合搜索。现在是选择了区域,然后再选择用途的时候区域的选择就不存在了
现在是这样的,

我要的是这样的

也就是说我的上面的四个筛选值不能同时筛选,如果要实现同时筛选的话就需要用到访问地址叠加(&ccid12=3032&ccid1=207&ccid17=164)这样的访问形式可以做到。就是不知道叠加的方法 

给你一个小例子,你看一下

<?php $base_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?';parse_str($_SERVER['QUERY_STRING'], $query_strings);foreach(array('ccid1', 'ccid2', 'ccid3', 'ccid4') as $ccid) {	$strings = $query_strings;		unset($strings[$ccid]);	$strings[$ccid] = '';	${$ccid.'_url'} = $base_url.http_build_query($strings); }	?><a href="<?php echo $ccid1_url; ?>1" target="_self">ccid1</a><a href="<?php echo $ccid2_url; ?>2" target="_self">ccid2</a><a href="<?php echo $ccid3_url; ?>3" target="_self">ccid3</a><a href="<?php echo $ccid4_url; ?>4" target="_self">ccid4</a>

给你一个方案,不需要改变已有的程序代码
只需在 search.php 的开始处加入以下代码

if(! $_GET) { //首次进入清楚 cookie  foreach($_COOKIE as $k=>$v) setcookie($k, '');}else {  //将传入的参数保存于 cookie 中  foreach($_GET as $k=>$v) setcookie($k, $v);  //取回上次保存的参数  $_GET = array_merge($_COOKIE, $_GET);  //$_GET 中就含有了诸复合查询条件了}
测试例
<?phpif(! $_GET) {  foreach($_COOKIE as $k=>$v) setcookie($k, '');}else {  foreach($_GET as $k=>$v) setcookie($k, $v);  $_GET = array_merge($_COOKIE, $_GET);  print_r($_GET);}?><p> </p><label><a href="?chid=4&ccid17=164" >5000元以下</a></label><label><a href="?chid=4&ccid17=166" >5000-7000元</a></label><label><a href="?chid=4&ccid17=167" >7000-10000元</a></label><label><a href="?chid=4&ccid17=168" >10000-15000元</a></label><label><a href="?chid=4&ccid17=169" >15000元以上</a></label><p> </p><label><a href="?chid=4&ccid12=3" >普通住宅</a></label><label><a href="?chid=4&ccid12=2" >公寓</a></label><label><a href="?chid=4&ccid12=3032" >商住</a></label><label><a href="?chid=4&ccid12=3023" >写字楼</a></label><label><a href="?chid=4&ccid12=3024" >商铺</a></label><label><a href="?chid=4&ccid12=4" >别墅</a></label><label><a href="?chid=4&ccid12=1" >四合院</a></label><label><a href="?chid=4&ccid12=3058" >仓库</a></label><label><a href="?chid=4&ccid12=5" >其他</a></label>

这段php可以放在模版文件search.html里么?如果放在search.php里就会影响网页版的楼盘搜索页面。因为他们用的是同一个search.php 我现在要实现这个功能的是手机上的。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn