我现在在开发一个商城
导航的条件是
价格:全部价格 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这个里面的参数
请高手解答
导航的条件是
价格:全部价格 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这个里面的参数
请高手解答
如果<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>
那所有的相关类型的url请求一个函数判断加上$_GET['jiage']参数。
无就补上。有就替换。
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>
<?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>就是拼出来而已......
{
$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>
}我的算法太挫,大概这样吧
<?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>
试试吧。有问题再说 = =
为什么要这样一下呢 $_GET[$type] = $old;
我像这样写可以吗
价格:<a href="id={list_id}<?php echo url('jiage', 0);?>">全部价格</a>
要用回原先的值。经过上一轮已改变了$_GET了。要换回来。加在后面吧。前面有?输出了
价格:<a href="<?php echo url('jiage', 0);?>&id={list_id}">全部价格</a>