CI 묻고 답하기

제목 검색기능.
글쓴이 영등포 작성시각 2011/11/02 20:53:14
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 21048   RSS


게시판 검색기능을 공부하고잇는데요
ci+template_ 적용하고 잇는중입니다.
포럼에 나온방식은 세그먼트로 검색어와필드를 넘겨서 controller에서 처리하는방식이던데
전 검색필드에서 post로 검색어를 넘겨서 찾는 방식을 햇는데 코드이그나이터 공부중인데
어떤게 좋은 흐름일까요??

그리고요 검색어를 검색해서 검색어만 색깔변화를 주려고하는데 가능할까요?
ci자체 객체가 잇나요?

view
 <form name="f_search" method="POST" enctype="multipart/form-data" action="bbs_list">

 <tr align="right">
  <td>
   <input type="text" name="word" > <input type="submit" value="search" />
  </td>
 </tr>
</form>

controller
   $s_word=$this->input->post('word', TRUE);
   $config['uri_segment'] = 3; // 페이지 넘버 주소 세그먼트값
    $data['getTotalData']=$config['total_rows']=$this->board->get_total_list($s_word);
   $data['pageNum']=$offset = $this->uri->segment(3,0); 
   $data['result']=$this->board->get_data_list($word, $vw_data['perPage'], $offset);
   $this->pagination->initialize($config);
   $vw_data['paging'] = $this->pagination->create_links();
   $data = $vw_data['result']; 
   $this->templateclass->define('list', 'list.tpl');
   $this->templateclass->assign('row',$vw_data);

   
   $this->templateclass->assign('row1',$data);
   $this->templateclass->print_('list');

model
  function get_data_list($key, $limit, $offset){
  $this->db->order_by("no", "asc");
  if($key){
   $this->db->like('title', $key, 'both');
   }
  $query=$this->db->get("tbl",$limit,$offset); 
        return $query->result_array();
   }

 다음글 tank_auth 관련 질문인데요..(이메일전송) (5)
 이전글 $this->input->post 버그일까요... (8)

댓글

변종원(웅파) / 2011/11/02 21:12:20 / 추천 0
post로 전송할 경우 다시 페이지에 표시해주기 위해 넘겨주는 부분 처리 해주시면 됩니다.
세그먼트로 처리하는 방식, 세그먼트+쿼리스트링(검색부분만)으로 처리하는 방식, 세션으로 처리하는 방식 등
방식은 많습니다.

검색어 색상 변환은 간단한 치환문 하나 만드시면 됩니다. ci 자체에는 없습니다.
한대승(불의회상) / 2011/11/03 07:30:21 / 추천 0
질문이 두가지군요.

1. 검색시 URL에 세그먼트 방식으로 검색어를 넘기는것과 POST로 검색어를 넘기는것중 어느것이 나은건가?
; URL에 세그먼트 방식으로 검색어를 넘길경우 Config를 손봐주셔야 한글 검색이 가능 합니다. 새로고침 가능 합니다.
; POST로 넘길경우 <input type="hidden" ... />을 사용하여 값을 지속 시켜 주셔야 합니다. 새로고침시 데이터를 재전송 할 꺼냐고 물어 봅니다.
; 두 방법중 본인이 편하다고 생각되는 방법을 사용 하시면 됩니다.

2. 검색어에 색상변화를 주고 싶은데 CI에 이를 지원하는 함수가 있는가?
; 아니오
; str_replace() 함수등을 이용하여 직접 바꿔 주셔야 합니다.
영등포 / 2011/11/03 15:58:22 / 추천 0

음..그렇군요..전 따로 함수자체가 잇는 줄알앗는데...^^ 감사합니다..