제목 | 검색기능시에 url은 변경되지만, 검색한 조건에 있는 데이터를 못 불러올때 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 창쓰 | 작성시각 | 2017/08/29 13:44:25 |
|
|||
현재 영문으로 검색하거나, 한글로 검색해도 동일한 증상이 나타납니다. 늘 도움을 주셔서 감사합니다.
/** 모델 **/ function get_list($table = 'bookingdb', $type = '', $offset = '', $limit = '', $search_word = '') { $sword = ''; if ($search_word != '') { // 검색어 있을 경우 $sword = ' WHERE subject like "%' . $search_word . '%" or contents like "%' . $search_word . '%" '; } $limit_query = ''; if ($limit != '' OR $offset != '') { // 페이징이 있을 경우 처리 $limit_query = ' LIMIT ' . $offset . ', ' . $limit; } $sql = "SELECT * FROM " . $table . $sword . " ORDER BY id DESC " . $limit_query; $query = $this -> db -> query($sql); if ($type == 'count') { $result = $query -> num_rows(); } else { $result = $query -> result(); } return $result; } /** 컨트롤러 **/ // 검색어 초기화 $search_word = $page_url = ''; $uri_segment = 5; // 주소 중에서 q(검색어) 세그먼트가 있는 지 검사하기 위해 주소를 배열로 반환 $uri_array = $this -> segment_explode($this -> uri -> uri_string()); if (in_array('q', $uri_array)) { // 주소에 검색어가 있을 경우 처리 $search_word = urldecode($this -> url_explode($uri_array, 'q')); // 페이지네이션 용 주소 $page_url = '/q/' . $search_word; $uri_segment = 7; } $this->load->library('pagination'); //페이지네이션 설정 $config['base_url'] = '/index.php/write/lists/bookingdb' . $page_url . '/page/';//페이징주소 $config['total_rows'] = $this -> write_model -> get_list($this -> uri -> segment(3), 'count');//게시물전체개수 $config['per_page'] = 10; //한페이지에 표시할 게시물수 $config['uri_segment'] = 5; //페이지 번호가 위치한세그먼트 $this -> pagination -> initialize($config);//페이지네이션 초기화 $data['pagination'] = $this -> pagination -> create_links(); //페이지링크를 view에서 사용할 변수로 할당 //게시판 목록을 불러오기위한 offset,limit 값 가져오기 $page = $this -> uri -> segment($uri_segment, 1); if ($page > 1) { $start = (($page / $config['per_page'])) * $config['per_page']; } else { $start = ($page - 1) * $config['per_page']; } $limit = $config['per_page']; $data['list'] = $this -> write_model -> get_list($this -> uri -> segment(3), '', $start, $limit); $this->load->view('/lists', $data); $this->load->view('footer'); /** 스크립트 **/ <script> $(document).ready(function() { $("#search_btn").click(function() { if ($("#q").val() == '') { alert("검색어를 입력하세요!"); return false; } else { var act = "/index.php/write/lists/bookingdb/q/" + $("#q").val() + "/page/1"; $("#bd_search").attr('action', act).submit(); } }); }); function board_search_enter(form) { var keycode = window.event.keyCode; if (keycode == 13) $("#search_btn").click(); } </script>
|
|||
다음글 | 안녕하세여...셀렉트 조회 질문... (3) | ||
이전글 | session 만료 후 초기화면에 관한 질문 (7) | ||
kaido
/
2017/08/29 14:51:14 /
추천
0
|
배강민
/
2017/08/29 15:23:08 /
추천
0
모델 메서드는 function get_list($table = 'bookingdb', $type = '', $offset = '', $limit = '', $search_word = '') 사용은 $data['list'] = $this -> write_model -> get_list($this -> uri -> segment(3), '', $start, $limit); 뭐가 빠졌는지 보이셔야합니다. |
창쓰
/
2017/08/29 17:30:53 /
추천
0
@kaido님 답변감사합니다 @배강민님 정말 감사합니다. 덕분에 해결됬습니다. 매번 물어볼때마다 답해주시고, 답을 해결할수있는 능력을 길러주셔서 감사합니다. 더 많이 배우고 더 많이 노력해서 다른분들을 도울수있도록 노력하겠습니다. 늘 고맙습니다. |
위에도 페이지가 1이고 밑에도 페이지가 1번이니 정상인것 같습니다.
CI 페이징은 값이 없으면 1번으로 취급 합니다.
네비에서 2번을 눌러도 2번으로 넘어가지 않는다면 link 설정이 잘못 되었을 것입니다.
/page/2 으로 변경해 보세요.