1

こんにちは皆さん、簡単な質問をしたいだけです。ナビゲーションリンクを作成することがすべてです。ナビゲーションリンクがあるからです。ユーザーがリンクを選択すると、リンクが強調表示され、ユーザーが別のリンクをクリックすると、そのリンクが強調表示され、前のリンクは強調表示されません。リンクを作成する際に配列を使用し、それをループしてアクションを呼び出します。

これが私のコードです

MY CONTROLLER

 public function homepage(){

        $data['title'] = "Welcome";
        $data['copyright'] = date('Y');
        $data['queryViewEntries'] = $this->category_model->viewAllEntry();
        $data['link'] = "category";     
        $this->load->view('common/header_common',$data);
        $this->load->view('common/navigation',$data);
        $this->load->view('User/contents/homepage');
        $this->load->view('common/footer_common',$data);

    }   

MY VIEW

 <li class="nav-header"></li>
          <?php

                $highlight = $link;

                $section = array(
                    'CATEGORIES' => 'user_controller/homepage',
                    'ITEMS' => 'item_controller/index',
                    'SUPPLIERS' => 'supplier_controller/index'
                );

                foreach($section as $key => $value){

                    echo "<li class='active'>".anchor($value,$key)."</li>"; //this is the problem how can i set the cliked link to active and the other will be not.


                }

          ?>
</li>

皆さんが私を助けてくれることを願っています。ありがとう。

4

2 に答える 2

1

https://www.codeigniter.com/user_guide/libraries/uri.html

 //add to your controller 
  $data['url_link'] = $this->uri->segment(1, 0); //your URL segment /www.website/items


  //view
  foreach($section as $key => $value){
         //class name
        $className = ($key === $url_link) ? 'active' : 'no-active';
        echo "<li class='$className'>".anchor($value,$key)."</li>";
    }
于 2013-07-18T09:47:45.693 に答える
0

まず、おそらくリストを < ul> で囲み、開いた直後にリストを閉じないでください。(あなたの編集者はおそらくあなたに好意を示しました)。ループでは、現在のリンクに対して各キーをチェックし、それに応じてスタイルを適用する必要があります。何かのようなもの ....

    <ul class="nav-header">
          <?php

                $highlight = $link;

                $section = array(
                    'CATEGORIES' => 'user_controller/homepage',
                    'ITEMS' => 'item_controller/index',
                    'SUPPLIERS' => 'supplier_controller/index'
                );



                  foreach($section as $key => $value){ 
                      if ($key == $link){
                           echo "<li class='active'>";
                      } else{ 
                         echo "<li class='inactive'>";
                      }
                      echo anchor($value,$key)."</li>"; 

                    }

          ?>
</ul>

ビューの「セクション」配列と $data['link'] の値が同じであることを確認する必要があります。つまり、コントローラーなどで一致するように名前を変更します

$data['link'] = 'CATEGORIES'

またはあなたのビューで `$section = array( 'category' => 'user_controller/homepage', ..... );

于 2013-07-18T09:57:15.517 に答える