导航的条件是
价格:全部价格 10~20 30~40 40~50
类型:全部类型 NOKIA IPHONE 摩托罗拉 三星
现在复合搜索的sql语句我是会写的
但是在选择条件的时候,我的超连接是这样写的:
价格:
全部价格
<A href="list.php?jiage=1">10~20</a>
<A href="list.php?jiage=2">30~40 </a>
<A href="list.php?jiage=3">40~50 </a>
类型:
全部类型
<A href="list.php?leixing=1">NOKIA </a>
<A href="list.php?leixing=2">IPHONE </a>
<A href="list.php?leixing=3">摩托罗拉 </a>
<A href="list.php?leixing=4">三星</a>
现在我想要的结果是 在list.php的页面
如果选择了价格 URL应该是 list.php?jiage=1
如果同时选中价格和类型 URL应该是 list.php?jiage=1&leixing=2
但是如果在list.php?jiage=1&leixing=2这个页面,重新选择类型而价格不改变选择,应该如何完成?也就是说要记录住jiage=1 改变的只是leixing这个里面的参数
请高手解答
17 个解决方案
#1
1、可以用js动态生成
如果<A href="list.php?jiage=1">10~20</a>
这后面的
<A href="list.php?jiage=1&leixing=1">NOKIA </a>.....
如果是<A href="list.php?jiage=2">30~40 </a>
后面的就可以 <A href="list.php?jiage=2&leixing=1">NOKIA </a>
2、你去看看迅雷,选择上面后价格后类型的链接都不同的
如果<A href="list.php?jiage=1">10~20</a>
这后面的
<A href="list.php?jiage=1&leixing=1">NOKIA </a>.....
如果是<A href="list.php?jiage=2">30~40 </a>
后面的就可以 <A href="list.php?jiage=2&leixing=1">NOKIA </a>
2、你去看看迅雷,选择上面后价格后类型的链接都不同的
#2
也就是说你可以把 类型 动态生成链接(因为这个页面一般为php页面,所以很好动态生成链接地址的)
#3
js如何动态生成,能详细点吗?我是新手 呵呵
#4
url不能固定。要取当前$_GET判断生成。
比如点了<A href="list.php?jiage=1">10~20</a>
那所有的相关类型的url请求一个函数判断加上$_GET['jiage']参数。
无就补上。有就替换。
比如点了<A href="list.php?jiage=1">10~20</a>
那所有的相关类型的url请求一个函数判断加上$_GET['jiage']参数。
无就补上。有就替换。
#5
能简单写个代码演示下吗
#6
我也有这个需求
你可以看看这两个连接
http://topic.csdn.net/u/20111116/14/87a50602-4393-4b89-80a6-22cff5c6c4d8.html
http://topic.csdn.net/u/20111109/21/5fa4161d-bbbf-482f-bf1e-34c362fc79d7.html
只可惜,我的问题还是没有解决,
我是这样做的
你可以看看这两个连接
http://topic.csdn.net/u/20111116/14/87a50602-4393-4b89-80a6-22cff5c6c4d8.html
http://topic.csdn.net/u/20111109/21/5fa4161d-bbbf-482f-bf1e-34c362fc79d7.html
只可惜,我的问题还是没有解决,
我是这样做的
$lx=array(
"经典"=>"plot=23",
"爱情"=>"plot=24",
"科幻"=>"plot=25",
"恐怖"=>"plot=26",
"喜剧"=>"plot=27",
"动作"=>"plot=28",
"剧情"=>"plot=29",
"惊悚"=>"plot=30",
"战争"=>"plot=31",
"武侠"=>"plot=32",
"伦理"=>"plot=33",
"预告片"=>"plot=34"
);
$dq=array(
"大陆"=>"distric=大陆",
"*"=>"distric=*",
"香港"=>"distric=香港",
"日本"=>"distric=日本",
"美国"=>"distric=美国",
"韩国"=>"distric=韩国",
"欧洲"=>"distric=欧洲",
"印度"=>"distric=印度"
);
$yy=array(
"成龙"=>"actor=成龙",
"汤唯葛"=>"actor=汤唯葛",
"葛优"=>"actor=葛优",
"优舒淇"=>"actor=优舒淇",
"范冰冰"=>"actor=范冰冰",
"周润发"=>"actor=周润发",
"周星驰"=>"actor=周星驰",
"甄子丹"=>"actor=甄子丹",
"范冰冰"=>"actor=范冰冰",
"周润发"=>"actor=周润发",
"甄子丹"=>"actor=甄子丹",
"古天乐"=>"actor=古天乐",
"李连杰"=>"actor=李连杰",
"刘德华"=>"actor=刘德华",
"吴彦祖"=>"actor=吴彦祖",
"梁朝伟"=>"actor=梁朝伟"
);
$dy=array(
"姜文"=>"director=姜文",
"张艺谋"=>"director=张艺谋",
"冯小刚"=>"director=冯小刚",
"陈凯歌"=>"director=陈凯歌",
"王家卫"=>"director=王家卫",
"陈可辛"=>"director=陈可辛",
"刘伟强"=>"director=刘伟强"
);
$date=array(
"2011"=>"screentime=2011",
"2010"=>"screentime=2010",
"2009"=>"screentime=2009",
"2008"=>"screentime=2008",
"2007"=>"screentime=2007"
);
if(!empty($_GET))
{
foreach ($_GET as $key => $value)
{
if(is_array(explode('&',$url)))
{
$url .= "$key=$value&";
}else
{
$url .= "&$key=$value";
}
}
}
<div class="types first" id="movieType">
<h4>类型</h4>
<ul class="clearfix">
<li class=""><a href="#" id="plot_all_all" class="cur_tag">全部</a></li>
<?php foreach($lx as $keys=>$values)
{
echo "<li><a id=plot_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="region" id="movieRegion">
<h4>国家/地区</h4>
<ul class="clearfix">
<li class=""><a href="#" id="district_all_all" class="cur_tag">全部</a></li>
<?php foreach($dq as $keys=>$values)
{
echo "<li><a id=district_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="players" id="moviePlayers">
<h4>演员</h4>
<ul class="clearfix">
<li class=""><a href="#" id="actor_all_all" class="cur_tag">全部</a></li>
<?php foreach($yy as $keys=>$values)
{
echo "<li><a id=actor_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="directors" id="movieDirectors">
<h4>导演</h4>
<ul class="clearfix">
<li class=""><a href="#" id="director_all_all" class="cur_tag">全部</a></li>
<?php foreach($dy as $keys=>$values)
{
echo "<li><a id=director_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="years" id="movieYears">
<h4>年代</h4>
<ul class="clearfix">
<li class=""><a href="#" id="screentime_all_all" class="cur_tag">全部</a></li>
<?php foreach($date as $keys=>$values)
{
echo "<li><a id=screentime_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
#7
有没有高手可以出来帮助下啊
#8
<?php
$prefix = $_GET['jiage'] ? $_GET['jiage'] : 0 ;
$prefixStr = 'demo.php?jiage='.$prefix.'&';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<p>
价格:<a href="?jiage=0">全部价格</a> <a href="?jiage=1">10~20</a> <a href="?jiage=2">30~40</a> <a href="?jiage=3">40~50</a>
</p>
类型:<a href="<?=$prefixStr?>leixing=0">全部类型</a> <a href="<?=$prefixStr?>leixing=1">NOKIA</a> <a href="<?=$prefixStr?>leixing=2">IPHONE</a> <a href="<?=$prefixStr?>leixing=3">摩托罗拉</a> <a href="<?=$prefixStr?>leixing=4">三星</a>
<body>
</body>
</html>
就是拼出来而已......
#9
当用户选择了某个类型, 那么这些设置类型的链接也就不应该再存在了,该出现一个舍弃操作 <a href="list.php?jiage=1">放弃所选择的 类型 </a> 。 像淘宝京东都是类似这么干的
我的算法太挫,大概这样吧
function getSELECT( $arr) // 遍历数组并拼成字符串。
{
$selectStr = '';
foreach( $arr as $key=>$value )
{
$selectStr .= ( $key .'='. $value .'&' );
}
return $selectStr ;
}
function delect( $key ) // 剔除某个选择
{
return array_diff_key( $_GET, $_GET[$key]);
}
// 如果 leixing 已经被用户选择,那么开放 剔除所选择的类型 操作 。
if( isset( $_GET['leixing'])){
$delectStr = getSELECT( delect('leixing'));
echo "<a href=\"list.php?". ."\">";
}
else{
// 如果没有,原样输出
$select = getSELECT( $_GET );
echo <<<leixing
<A href="list.php?{$select}&leixing=4">NOKIA </a>
<A href="list.php?{$select}&leixing=4">IPHONE </a>
<A href="list.php?{$select}&leixing=4">摩托罗拉 </a>
<A href="list.php?{$select}&leixing=4">三星</a>
}
我的算法太挫,大概这样吧
#10
js 控制.这种后期的页面修改都应该用js修改控制
#11
点了类型 url为什么是%3C?=$prefixStr?>leixing=3
#12
<?php
function url($type, $_val)
{
$old = $_GET[$type];
$_GET[$type] = $_val;
foreach ($_GET as $key=>$val)
{
$arr[] = $key . '=' . $val;
$_GET[$type] = $old;
}
Return '?' . implode('&', $arr);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<p>
价格:<a href="<?php echo url('jiage', 0);?>">全部价格</a> <a href="<?php echo url('jiage', 1);?>">10~20</a> <a href="<?php echo url('jiage', 2);?>">30~40</a> <a href="<?php echo url('jiage', 3);?>">40~50</a>
</p>
类型:<a href="<?php echo url('leixing', 0);?>">全部类型</a> <a href="<?php echo url('leixing', 1);?>">NOKIA</a> <a href="<?php echo url('leixing', 2);?>">IPHONE</a>
<p>
类型2:<a href="<?php echo url('leixing2', 0);?>">全部类型</a> <a href="<?php echo url('leixing2', 1);?>">NOKIA</a> <a href="<?php echo url('leixing2', 2);?>">IPHONE</a>
</p>
<body>
</body>
</html>
试试吧。有问题再说 = =
#13
问题已解决 万分感谢
#14
我试了,可以满足要求,我还想多问一下。
为什么要这样一下呢 $_GET[$type] = $old;
为什么要这样一下呢 $_GET[$type] = $old;
#15
我有一个问题,我的<a>标签里还有一个id参数
我像这样写可以吗
价格:<a href="id={list_id}<?php echo url('jiage', 0);?>">全部价格</a>
我像这样写可以吗
价格:<a href="id={list_id}<?php echo url('jiage', 0);?>">全部价格</a>
#16
要用回原先的值。经过上一轮已改变了$_GET了。要换回来。
加在后面吧。前面有?输出了
价格:<a href="<?php echo url('jiage', 0);?>&id={list_id}">全部价格</a>
#17
好东西,收藏了
#1
1、可以用js动态生成
如果<A href="list.php?jiage=1">10~20</a>
这后面的
<A href="list.php?jiage=1&leixing=1">NOKIA </a>.....
如果是<A href="list.php?jiage=2">30~40 </a>
后面的就可以 <A href="list.php?jiage=2&leixing=1">NOKIA </a>
2、你去看看迅雷,选择上面后价格后类型的链接都不同的
如果<A href="list.php?jiage=1">10~20</a>
这后面的
<A href="list.php?jiage=1&leixing=1">NOKIA </a>.....
如果是<A href="list.php?jiage=2">30~40 </a>
后面的就可以 <A href="list.php?jiage=2&leixing=1">NOKIA </a>
2、你去看看迅雷,选择上面后价格后类型的链接都不同的
#2
也就是说你可以把 类型 动态生成链接(因为这个页面一般为php页面,所以很好动态生成链接地址的)
#3
js如何动态生成,能详细点吗?我是新手 呵呵
#4
url不能固定。要取当前$_GET判断生成。
比如点了<A href="list.php?jiage=1">10~20</a>
那所有的相关类型的url请求一个函数判断加上$_GET['jiage']参数。
无就补上。有就替换。
比如点了<A href="list.php?jiage=1">10~20</a>
那所有的相关类型的url请求一个函数判断加上$_GET['jiage']参数。
无就补上。有就替换。
#5
能简单写个代码演示下吗
#6
我也有这个需求
你可以看看这两个连接
http://topic.csdn.net/u/20111116/14/87a50602-4393-4b89-80a6-22cff5c6c4d8.html
http://topic.csdn.net/u/20111109/21/5fa4161d-bbbf-482f-bf1e-34c362fc79d7.html
只可惜,我的问题还是没有解决,
我是这样做的
你可以看看这两个连接
http://topic.csdn.net/u/20111116/14/87a50602-4393-4b89-80a6-22cff5c6c4d8.html
http://topic.csdn.net/u/20111109/21/5fa4161d-bbbf-482f-bf1e-34c362fc79d7.html
只可惜,我的问题还是没有解决,
我是这样做的
$lx=array(
"经典"=>"plot=23",
"爱情"=>"plot=24",
"科幻"=>"plot=25",
"恐怖"=>"plot=26",
"喜剧"=>"plot=27",
"动作"=>"plot=28",
"剧情"=>"plot=29",
"惊悚"=>"plot=30",
"战争"=>"plot=31",
"武侠"=>"plot=32",
"伦理"=>"plot=33",
"预告片"=>"plot=34"
);
$dq=array(
"大陆"=>"distric=大陆",
"*"=>"distric=*",
"香港"=>"distric=香港",
"日本"=>"distric=日本",
"美国"=>"distric=美国",
"韩国"=>"distric=韩国",
"欧洲"=>"distric=欧洲",
"印度"=>"distric=印度"
);
$yy=array(
"成龙"=>"actor=成龙",
"汤唯葛"=>"actor=汤唯葛",
"葛优"=>"actor=葛优",
"优舒淇"=>"actor=优舒淇",
"范冰冰"=>"actor=范冰冰",
"周润发"=>"actor=周润发",
"周星驰"=>"actor=周星驰",
"甄子丹"=>"actor=甄子丹",
"范冰冰"=>"actor=范冰冰",
"周润发"=>"actor=周润发",
"甄子丹"=>"actor=甄子丹",
"古天乐"=>"actor=古天乐",
"李连杰"=>"actor=李连杰",
"刘德华"=>"actor=刘德华",
"吴彦祖"=>"actor=吴彦祖",
"梁朝伟"=>"actor=梁朝伟"
);
$dy=array(
"姜文"=>"director=姜文",
"张艺谋"=>"director=张艺谋",
"冯小刚"=>"director=冯小刚",
"陈凯歌"=>"director=陈凯歌",
"王家卫"=>"director=王家卫",
"陈可辛"=>"director=陈可辛",
"刘伟强"=>"director=刘伟强"
);
$date=array(
"2011"=>"screentime=2011",
"2010"=>"screentime=2010",
"2009"=>"screentime=2009",
"2008"=>"screentime=2008",
"2007"=>"screentime=2007"
);
if(!empty($_GET))
{
foreach ($_GET as $key => $value)
{
if(is_array(explode('&',$url)))
{
$url .= "$key=$value&";
}else
{
$url .= "&$key=$value";
}
}
}
<div class="types first" id="movieType">
<h4>类型</h4>
<ul class="clearfix">
<li class=""><a href="#" id="plot_all_all" class="cur_tag">全部</a></li>
<?php foreach($lx as $keys=>$values)
{
echo "<li><a id=plot_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="region" id="movieRegion">
<h4>国家/地区</h4>
<ul class="clearfix">
<li class=""><a href="#" id="district_all_all" class="cur_tag">全部</a></li>
<?php foreach($dq as $keys=>$values)
{
echo "<li><a id=district_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="players" id="moviePlayers">
<h4>演员</h4>
<ul class="clearfix">
<li class=""><a href="#" id="actor_all_all" class="cur_tag">全部</a></li>
<?php foreach($yy as $keys=>$values)
{
echo "<li><a id=actor_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="directors" id="movieDirectors">
<h4>导演</h4>
<ul class="clearfix">
<li class=""><a href="#" id="director_all_all" class="cur_tag">全部</a></li>
<?php foreach($dy as $keys=>$values)
{
echo "<li><a id=director_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
<div class="years" id="movieYears">
<h4>年代</h4>
<ul class="clearfix">
<li class=""><a href="#" id="screentime_all_all" class="cur_tag">全部</a></li>
<?php foreach($date as $keys=>$values)
{
echo "<li><a id=screentime_".$keys." href=?".$url.$values.">".$keys."</a></li>";
}
?>
</ul>
</div>
#7
有没有高手可以出来帮助下啊
#8
<?php
$prefix = $_GET['jiage'] ? $_GET['jiage'] : 0 ;
$prefixStr = 'demo.php?jiage='.$prefix.'&';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<p>
价格:<a href="?jiage=0">全部价格</a> <a href="?jiage=1">10~20</a> <a href="?jiage=2">30~40</a> <a href="?jiage=3">40~50</a>
</p>
类型:<a href="<?=$prefixStr?>leixing=0">全部类型</a> <a href="<?=$prefixStr?>leixing=1">NOKIA</a> <a href="<?=$prefixStr?>leixing=2">IPHONE</a> <a href="<?=$prefixStr?>leixing=3">摩托罗拉</a> <a href="<?=$prefixStr?>leixing=4">三星</a>
<body>
</body>
</html>
就是拼出来而已......
#9
当用户选择了某个类型, 那么这些设置类型的链接也就不应该再存在了,该出现一个舍弃操作 <a href="list.php?jiage=1">放弃所选择的 类型 </a> 。 像淘宝京东都是类似这么干的
我的算法太挫,大概这样吧
function getSELECT( $arr) // 遍历数组并拼成字符串。
{
$selectStr = '';
foreach( $arr as $key=>$value )
{
$selectStr .= ( $key .'='. $value .'&' );
}
return $selectStr ;
}
function delect( $key ) // 剔除某个选择
{
return array_diff_key( $_GET, $_GET[$key]);
}
// 如果 leixing 已经被用户选择,那么开放 剔除所选择的类型 操作 。
if( isset( $_GET['leixing'])){
$delectStr = getSELECT( delect('leixing'));
echo "<a href=\"list.php?". ."\">";
}
else{
// 如果没有,原样输出
$select = getSELECT( $_GET );
echo <<<leixing
<A href="list.php?{$select}&leixing=4">NOKIA </a>
<A href="list.php?{$select}&leixing=4">IPHONE </a>
<A href="list.php?{$select}&leixing=4">摩托罗拉 </a>
<A href="list.php?{$select}&leixing=4">三星</a>
}
我的算法太挫,大概这样吧
#10
js 控制.这种后期的页面修改都应该用js修改控制
#11
点了类型 url为什么是%3C?=$prefixStr?>leixing=3
#12
<?php
function url($type, $_val)
{
$old = $_GET[$type];
$_GET[$type] = $_val;
foreach ($_GET as $key=>$val)
{
$arr[] = $key . '=' . $val;
$_GET[$type] = $old;
}
Return '?' . implode('&', $arr);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<p>
价格:<a href="<?php echo url('jiage', 0);?>">全部价格</a> <a href="<?php echo url('jiage', 1);?>">10~20</a> <a href="<?php echo url('jiage', 2);?>">30~40</a> <a href="<?php echo url('jiage', 3);?>">40~50</a>
</p>
类型:<a href="<?php echo url('leixing', 0);?>">全部类型</a> <a href="<?php echo url('leixing', 1);?>">NOKIA</a> <a href="<?php echo url('leixing', 2);?>">IPHONE</a>
<p>
类型2:<a href="<?php echo url('leixing2', 0);?>">全部类型</a> <a href="<?php echo url('leixing2', 1);?>">NOKIA</a> <a href="<?php echo url('leixing2', 2);?>">IPHONE</a>
</p>
<body>
</body>
</html>
试试吧。有问题再说 = =
#13
问题已解决 万分感谢
#14
我试了,可以满足要求,我还想多问一下。
为什么要这样一下呢 $_GET[$type] = $old;
为什么要这样一下呢 $_GET[$type] = $old;
#15
我有一个问题,我的<a>标签里还有一个id参数
我像这样写可以吗
价格:<a href="id={list_id}<?php echo url('jiage', 0);?>">全部价格</a>
我像这样写可以吗
价格:<a href="id={list_id}<?php echo url('jiage', 0);?>">全部价格</a>
#16
要用回原先的值。经过上一轮已改变了$_GET了。要换回来。
加在后面吧。前面有?输出了
价格:<a href="<?php echo url('jiage', 0);?>&id={list_id}">全部价格</a>
#17
好东西,收藏了