2017-12-29 5 views
0

내 필터 검색 및 페이지에 레코드를 표시했으나 필터링 된 데이터가있는 페이지에 페이지 매기기를 추가하고 싶습니다. 내 컨트롤러의 페이지 매김에 대한 코드를 거의 작성했습니다. 보기 페이지, 두 번째 숫자 페이지를 클릭 할 때마다 새로 고침, 페이징 번호를 클릭 한 후 새로 고침을하고 싶지 않습니다.codeigniter에서 필터 검색을 위해 아약스 페이지 매김을 적용하는 방법

내 컨트롤러 코드는 내가 코드

$(".cl").live("click", function() { 
     var val = $('input[type=checkbox]:checked').map(function(_, el) { 
     return $(el).val(); 
    }).get(); 
     var cat = $("#sub_cat").val(); 
      $.ajax({ 
      type: "POST", 
      url: '<?php echo base_url();?>star/filtersearch', 
      data: {search: val, cat: cat}, 
      success:function(data){ 
      $("#prd").html(data); 
      } 
     }); 
}); 

아래에있게 아약스 응답 데이터를 전달하고 있는데 내가이 문제를 해결 할 수있는 방법이 enter image description here

같은 출력을 얻기

public function filtersearch() 
    { 
     $proSearch = implode(",", $_POST['search']) ; 
     $cat = $_POST['cat']; 
     log_message('error', 'post value is '.$proSearch); 
     log_message('error', 'subcat '.$cat); 
     $config = array(); 
     $config['page_query_string'] = TRUE; 
     $config['query_string_segment'] = 'offset'; 
     $config["base_url"] = base_url() . "products"; 
     if (!is_null($cat)) 
     $config['base_url'] = $config['base_url'].'/'.$cat; 

     $config['base_url'] = $config['base_url'].'/?'; 

     $config["total_rows"] = $this->Star_model->getfilterCount($proSearch,$cat); 
     $config["per_page"] = 1; 
     $config["uri_segment"] = 4; 

     $config['full_tag_open'] = '<ul class="pagination">'; 
     $config['full_tag_close'] = '</ul>'; 
     $config['first_link'] = false; 
     $config['last_link'] = false; 
     $config['first_tag_open'] = '<li>'; 
     $config['first_tag_close'] = '</li>'; 
     $config['prev_link'] = '«'; 
     $config['prev_tag_open'] = '<li class="prev">'; 
     $config['prev_tag_close'] = '</li>'; 
     $config['next_link'] = '»'; 
     $config['next_tag_open'] = '<li>'; 
     $config['next_tag_close'] = '</li>'; 
     $config['last_tag_open'] = '<li>'; 
     $config['last_tag_close'] = '</li>'; 
     $config['cur_tag_open'] = '<li class="active"><a href="#">'; 
     $config['cur_tag_close'] = '</a></li>'; 
     $config['num_tag_open'] = '<li>'; 
     $config['num_tag_close'] = '</li>'; 

     //$this->pagination->initialize($config); 
     $this->pagination->initialize($config); 


     $offset = $this->input->get('offset'); 

     $data['search'] = $this->Star_model->getfilterSearch($proSearch,$cat,$config["per_page"], $offset); 
$output = null; 
      foreach ($data['search'] as $productrows) 
      { 

       $output .= "<li><a href='#'> 
        <img src='../uploads/products/$productrows->featured_img' /></a> 
       <div class='head'>$productrows->prod_name<br /> 
        <img src='../starassets/images/rupee.jpg'/> 
        <span>$productrows->sale_price</span> 
       </div> 
      </li>"; 
      } 
echo $this->pagination->create_links(); 
      echo $output; 
      } 

이하 ?

+0

라이브가 JQuery와에서 더 이상 사용되지 않습니다, 당신은.에'('클릭') ("") $'사용해야합니다 – Phiter

답변

0

클릭 이벤트를 전달한 다음 기본 링크를 취소해야합니다.

https://api.jquery.com/event.preventdefault/

// pass event to click function 
$(".cl").live("click", function (event) { 

    // prevent link being followed. 
    event.preventDefault(); 

    var val = $('input[type=checkbox]:checked').map(function(_, el) { 
    return $(el).val(); 
    }).get(); 
    var cat = $("#sub_cat").val(); 
     $.ajax({ 
     type: "POST", 
     url: '<?php echo base_url();?>star/filtersearch', 
     data: {search: val, cat: cat}, 
     success:function(data){ 
     $("#prd").html(data); 
     } 
    }); 
}); 
관련 문제