5
回答
这种复杂的判断怎么写
华为云数据库免费试用   

这是一个判断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>    

图示说明

PHP
举报
ziluopao
发帖于2年前 5回/549阅
共有5个答案 最后回答: 2年前

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

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

我又这么写了一下,但还是有问题,主要是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>



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