这种复杂的判断怎么写

ziluopao 发布于 2016/06/19 16:51
阅读 554
收藏 0
PHP

这是一个判断css样式的代码块,为了说明情况见图示。

我是这样写的

<div>
    <ul>
      <?php
        (empty($_GET['sc_id']) || $_GET['act'] !== 'store') ? $id = 'id="dhup"': $id = "";
      ?>  
      <li <?=$id;?>><a href="/">网站首页</a></li>
      <?php
      $clsssModel = Model('store_class')->getClassStoreNav(array('sc_id' => array('between','2,8')),null,'','*','');
      for( $i = 0; $i< count($clsssModel) ;$i++ ){
       ?>
      
      <?php
      (!$_GET['sc_id'] || $_GET['act'] == 'store') ? $i == 3 : $_GET['sc_id'] == $clsssModel[$i]['sc_id'];
      ($_GET['sc_id'] == $clsssModel[$i]['sc_id']) ? $idd = 'id="dhup"': $idd = "";?>
      <li <?=$idd;?>><a href="#"><?=$clsssModel[$i]['sc_name']; ?></a></li>
      <?
      }
      ?>
    </ul>
  </div>    

图示说明

加载中
0
ziluopao
ziluopao

总于解决了,哈哈,看来遇到问题还要穷打猛追才行,放过了,就完了,永远是个遗憾的迷

(($posa == true && $posb == false && $i ==1) || ($_GET['sc_id'] == $clsssModel[$i]['sc_id']))? 'id="dhup"': "";?>

0
森先生
森先生
如果只是样式的话,页面加载完了,用JS判断URL吧。。。
ziluopao
ziluopao
当然了,也可用php判断url
ziluopao
ziluopao
不想用js,用js就不问了,很简单
0
公孙二狗
公孙二狗

那就 php 生成页面的时候判断,给加上对应的 CSS class

ziluopao
ziluopao
嗯,你很聪明
0
ziluopao
ziluopao

我又这么写了一下,但还是有问题,主要是act=store时,如何把si = 4,加给循环,这里我思维短路了,不知如何办理

<ul>
      <?php
        //print_r($_SERVER[QUERY_STRING]);
      $mystring = $_SERVER[QUERY_STRING];
      $findme1 ='store';
      $findme2 ='sc_id';
      $pos1 = strpos($mystring, $findme1);
      $pos2 = strpos($mystring, $findme2);
      if($pos1 == false && $pos2 == false){
          $id = 'id="dhup"';
      }else{
          echo "";
      }
        
      ?>  
      <li <?=$id;?>><a href="/">网站首页</a></li>
      <?php
      $clsssModel = Model('store_class')->getClassStoreNav(array('sc_id' => array('between','2,8')),null,'','*','');
      for( $i = 0; $i< count($clsssModel) ;$i++ ){
       ?>
       <?php
      
                $mystr = $_SERVER[QUERY_STRING];
                $find1 ='store';
                $find2 ='sc_id';
                $posa = strpos($mystr, $find1);
                $posb= strpos($mystr, $find2);
                if($posa == true && $posb == false){
                    $i = 3;
                }else{
                    echo "";
                }
              
              ($_GET['sc_id'] == $clsssModel[$i]['sc_id']) ? $idd = 'id="dhup"': $idd = "";
      
       ?>
      <li <?=$idd;?>><a href="http://localhost/microshop/index.php?act=store&sc_id=<?=$clsssModel[$i]['sc_id']; ?>"><?=$clsssModel[$i]['sc_name']; ?></a></li>
      <?
      }
      ?>
    </ul>



0
追梦的青春
看了下楼主要实现的要求,给个思路,可以按照标签对应ID加上css class就好。然后判断下空的情况。
追梦的青春
@ziluopao 在鼠标触发事件里面,用jquery或者类似的选择器获得相应的css class去设置,前提是,先要获得地址栏参数。思路已经给的很清晰了。
ziluopao
ziluopao
呵呵,这种思路就不用说了,那肯定的!,关键是代码实现如何做!
返回顶部
顶部