코드이그나이터 검색하면 페이지네이션 페이지 수 초기화 하려면?

조회수 1694회

안녕하세요. 코드이그나이터 검색에 test로 검색하면 url: www:test.com/page/20/name='test' 2페이지 그대로 검색하게 되버리는데요. 검색할 때 .../page/name='test' 이렇게 페이지 수 초기화 시키고 싶은데요. 어떻게 하면 되나요?

//검색어 초기화
        //$search_word = '';
        $page_url = "";
        $uri_segment = 5;

        $from_search_cu_complain ="";
        $from_search_cu_manager ="";

        $searchToArray = "";    //검색어 집합소
        //주소 중에서 ?(검색어) 세그먼트가 있는지 검사하기 위해 주소를 배열로 전환
        $uri_array = $this->segment_explode($this->uri->uri_string());
        if( strpos($_SERVER['REQUEST_URI'], "?") !== false ){
            if($_SERVER['QUERY_STRING']!=""){
                if($_SERVER['QUERY_STRING']!=""){
                    $searchArray = explode("&", $_SERVER['QUERY_STRING'] );
                        foreach ($searchArray as $key => $value) {
                            $a = explode("=", $value);
                            $searchToArray[$a[0]] = $a[1];
                            //echo "name : " . $a[0] . " / value : " . $a[1] . "<bR>";

                            /*if($a[0] == "search_cu_complain") $from_search_cu_complain = $a[1];
                            if($a[0] == "search_cu_manager") $from_search_cu_manager =$a[1];*/
                        }
                    $page_url = '?'.$_SERVER['QUERY_STRING'];
                }
            }
        }

        //페이지네이션 라이브러리 로딩 추가
        $this->load->library('pagination');
        $this->load->helper('url');
        $this->load->database();        


        // 페이지네이션 설정값

        $config['suffix'] = '?'.$_SERVER['QUERY_STRING'];
        $config['base_url']= '/crm/test/'.$tx_board.'/page/';
        //$config['reuse_query_string'] = FALSE;
        $config['first_url'] = $config['base_url'] . $config['suffix'];
        $config['total_rows'] = $this->Crm_m->landing_data($this->uri->segment(3, $tx_board), 'count', '', '', $searchToArray); //게시물 전체 갯수
        $config['per_page'] = '10'; // 페이지 출력수
        $config['uri_segment'] = $uri_segment; // 페이지 넘버 주소 세그먼트값
        $config['full_tag_open'] = "<p>";
        $config['full_tag_close'] = '</p>';
        $config['num_links'] = 5;
        $config['first_link'] = '처음';
        $config['last_link'] = '마지막';
        $config['display_first_always'] = FALSE;

        //페이지네이션 초기화
        $this->pagination->initialize($config);
        //게시물 목록을 불러오기 위한 offset, limit 값 가져오기
        $data['page'] = $page = $this->uri->segment($uri_segment, 1);
        $data['pagination'] = $this->pagination->create_links();

        //순서값
        if( $page > 1) $start = ( ($page / $config['per_page']) ) * $config['per_page'];
        else $start = ($page - 1) * $config['per_page'];

        $limit = $config['per_page'];
  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  •         $("#search_btn").on('click',function(){
                $from_url=$(location).attr('pathname');
                while($from_url.charAt($from_url.length-1) != '/'){
                    $from_url=$from_url.slice(0,-1);
                }
                $('form[name=search_form]').attr('action',$from_url);
           });
    

    삽질하다 그냥 아이디어로 이렇게 해놨습니다. 검색 버튼 클릭 시 현재 URL정보를 가져와서 페이지 수 제거 후 form action으로 이동 시켰습니다.

    더 간편한 방법이 있으시다면 알려주세요! 감사합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 저는 페이지네이션 설정 시 사용 한 base_url 값을 불러와서 action 값을 고정해줬어요

    //controller:
    $datas['base_url'] =$config['base_url'];
    
    <!-- view의 searchform-->
     <form name="searchForm" action="<?=$base_url?>" >
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)