我现在在开发一个商城
导航的条件是
价格:全部价格  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这个里面的参数
请高手解答

解决方案 »

  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、你去看看迅雷,选择上面后价格后类型的链接都不同的
      

  2.   

    也就是说你可以把 类型 动态生成链接(因为这个页面一般为php页面,所以很好动态生成链接地址的)
      

  3.   

    url不能固定。要取当前$_GET判断生成。
    比如点了<A href="list.php?jiage=1">10~20</a> 
    那所有的相关类型的url请求一个函数判断加上$_GET['jiage']参数。
    无就补上。有就替换。
      

  4.   

    我也有这个需求你可以看看这两个连接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>
      

  5.   


    <?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>就是拼出来而已......
      

  6.   

    当用户选择了某个类型, 那么这些设置类型的链接也就不应该再存在了,该出现一个舍弃操作 <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>
        }我的算法太挫,大概这样吧
      

  7.   

    js 控制.这种后期的页面修改都应该用js修改控制
      

  8.   

    点了类型 url为什么是%3C?=$prefixStr?>leixing=3
      

  9.   


    <?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>
    试试吧。有问题再说 = =
      

  10.   

    我试了,可以满足要求,我还想多问一下。
    为什么要这样一下呢   $_GET[$type] = $old;
      

  11.   

    我有一个问题,我的<a>标签里还有一个id参数
    我像这样写可以吗
    价格:<a href="id={list_id}<?php echo url('jiage', 0);?>">全部价格</a>
      

  12.   


    要用回原先的值。经过上一轮已改变了$_GET了。要换回来。加在后面吧。前面有?输出了
    价格:<a href="<?php echo url('jiage', 0);?>&id={list_id}">全部价格</a>