質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • PHP

    24036questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CSS3

    2626questions

    CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

  • Bootstrap

    1292questions

    BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

  • CodeIgniter

    290questions

    CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

CodeigniterでBootstrapのページングを実装で現在のページがハイライトされない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 701

hidepon

score 166

データベースから取得したデータをテーブルで10件区切りで表示する際にページング機能を利用します。
その際、CodeIgniterのデフォルトのページングだとデザイン性がないので、
Bootstrapのページング機能を利用しようと思います。
ところが、2ページ目を表示した際に2番の番号がハイライトされません。

class C_search extends CI_Controller {
    function __construct(){
        // Model クラスのコンストラクタを呼び出す
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->model('/admin/c_info');
        $this->load->library('pagination');
    }

    public function index(){
        $data                            =    array();
        $data["title"]            =    "情報(検索・一覧)";
        //HeaderのVIEW
        $this->load->view('/header/admin/32',$data);
        $this->load->view('/admin/ce/tpl_009',$data);
    }

    public function search(){
        $data                    =    array();
        //配列
        $circle_array            =    $this->c_info->Get_Search_Result();
        $row_count                =    $this->c_info->Get_Search_Result_Count();
        $data["link"]            =    $this->Set_Paging($row_count,10,4);
        //ヘッダー
        $data["title"]            =    "情報(検索・一覧)";
        //HeaderのVIEW
        $this->load->view('/header/admin/32',$data);
        //データの有無
        if($row_count > 0){
            $data["table_str"]        =    $this->Create_Table_Str($circle_array);
            $this->load->view('/admin/ce/tpl_002',$data);
            return FALSE;
        }else{
            $this->load->view('/admin/ce/tpl_001',$data);
            return FALSE;
        }
    }

    public function page(){
        $data                            =    array();
        //URLパラメータ
        $prm                            =    $this->uri->segment(4);
        //配列
        $circle_array                    =    $this->c_info->Get_Search_Result_Session($prm);
        //配列
        $row_count                        =    $this->c_info->Get_Data_Count_Session();
        $data["link"]                    =    $this->Set_Paging($row_count,10,4);
        //ヘッダー
        $data["title"]                    =    "情報(検索・一覧)";
        //HeaderのVIEW
        $this->load->view('/header/admin/32',$data);
        //データの有無
        if($row_count > 0){
            $data["table_str"]        =    $this->Create_Table_Str($circle_array);
            $this->load->view('/admin/ce/tpl_002',$data);
            return FALSE;
        }else{
            $this->load->view('/admin/ce/tpl_001',$data);
            return FALSE;
        }
    }

        //ページング
    private function Set_Paging($row_count,$per_page,$segment){
        $url  = empty($_SERVER["HTTPS"]) ? "http://" : "https://";
        $url .= $_SERVER["HTTP_HOST"];
        $config["base_url"]                =    $url.'/admin/circle_info_search/page';
        $config["total_rows"]            =    $row_count;
        $config["full_tag_open"]        =    "<ul class='pagination'>";
        $config["full_tag_close"]        =    "</ul>";
        $config["num_tag_open"]            =    '<li>';
        $config["num_tag_close"]        =    '</li>';
        $config["cur_tag_open"]            =    "<li class='disabled'><li class='active'><a href='#'>";
        $config["cur_tag_close"]        =    "<span class='sr-only'></span></a></li>";
        $config["next_tag_open"]        =    "<li>";
        $config["next_tagl_close"]        =    "</li>";
        $config["prev_tag_open"]        =    "<li>";
        $config["prev_tagl_close"]        =    "</li>";
        $config["first_tag_open"]        =    "<li>";
        $config["first_tagl_close"]        =    "</li>";
        $config["last_tag_open"]        =    "<li>";
        $config["last_tagl_close"]        =    "</li>";
        $config["per_page"]                =    $per_page;
        $config["uri_segment"]            =    $segment;
        $this->pagination->initialize($config); 
        return $this->pagination->create_links();
    }


index 初期状態
search 検索結果
page   ページングのリンクを押した際の表示画面
URL

となります。
11件が存在するときに、1と2のリンクが表示されます。
11件目を閲覧するために2のリンクを押すと11件目を表示しますが、1ページ目にハイライトが当たってしまいます。
どのように対処してよいのか分からず途方に暮れています。
宜しくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

-1

外部化すると問題があるようです。もとに戻して当面考えてみます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • PHP

    24036questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CSS3

    2626questions

    CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

  • Bootstrap

    1292questions

    BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

  • CodeIgniter

    290questions

    CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。