2013-09-04 4 views
5

के साथ AJAX पेजिनेशन क्या कोई मुझे JQuery का उपयोग करके कोडिनेटर में एक साधारण AJAX पेजिनेशन के साथ मदद कर सकता है? डेटाबेस से पूछे गए पृष्ठांकित सूची के साथ। मैं वेब खोज की, लेकिन सभी exemples बहुत जटिल होते हैं ... मेरा बुरा अंग्रेजी के लिए अग्रिम रूप से धन्यवाद और खेद ...कोडिनेटर और jquery

+0

google ... कोडिनेटर में AJAX पेजिनेशन .. :) – bipen

+0

मैंने कोशिश की लेकिन वे सभी बहुत ही जटिल हैं। और मैं codeigniter और jquery के लिए नया हूँ .. –

उत्तर

19

बस का उपयोग CodeIgniter पृष्ठांकन सरल और उपयोग jQuery के माध्यम से पृष्ठांकन के लिए कोड का पालन:

<script> 
$(function(){ 
    $("#pagination-div-id a").click(function(){ 
    $.ajax({ 
    type: "POST", 
    url: $(this).attr("href"), 
    data:"q=<?php echo $searchString; ?>", 
    success: function(res){ 
     $("#containerid").html(res); 
    } 
    }); 
    return false; 
    }); 
}); 
</script> 

यहां पेजिनेशन div id पेजिनेशन कंटेनर की आईडी है और कंटेनरिड कंटेनर आईडी सरल है जहां आप परिणाम दिखा रहे हैं।

+3

धन्यवाद। मुझे नहीं पता था कि यह इतना आसान था। ए आपको वोट देगा, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है ... –

+1

@beniaminSzabo मैं आपकी ओर से यह कर रहा हूं :) –

+0

धन्यवाद। मेरे पास अब पर्याप्त प्रतिष्ठा है :) –

1

बस CodeIgniter पृष्ठांकन पुस्तकालय का उपयोग करें और पुस्तकालय में निम्नलिखित समारोह जोड़ने के बाद बनाने के लिंक से कार्य

function create_links_ajax() 
    { 
     // If our item count or per-page total is zero there is no need to continue. 
     if ($this->total_rows == 0 OR $this->per_page == 0) 
     { 
      return ''; 
     } 

     // Calculate the total number of pages 
     $num_pages = ceil($this->total_rows/$this->per_page); 

     // Is there only one page? Hm... nothing more to do here then. 
     if ($num_pages == 1) 
     { 
      return ''; 
     } 

     // Set the base page index for starting page number 
     if ($this->use_page_numbers) 
     { 
      $base_page = 1; 
     } 
     else 
     { 
      $base_page = 0; 
     } 

     // Determine the current page number. 
     $CI =& get_instance(); 

     if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE) 
     { 
      if ($CI->input->get($this->query_string_segment) != $base_page) 
      { 
       $this->cur_page = $CI->input->get($this->query_string_segment); 

       // Prep the current page - no funny business! 
       $this->cur_page = (int) $this->cur_page; 
      } 
     } 
     else 
     { 
      if ($CI->uri->segment($this->uri_segment) != $base_page) 
      { 
       $this->cur_page = $CI->uri->segment($this->uri_segment); 

       // Prep the current page - no funny business! 
       $this->cur_page = (int) $this->cur_page; 
      } 
     } 

     // Set current page to 1 if using page numbers instead of offset 
     if ($this->use_page_numbers AND $this->cur_page == 0) 
     { 
      $this->cur_page = $base_page; 
     } 

     $this->num_links = (int)$this->num_links; 

     if ($this->num_links < 1) 
     { 
      show_error('Your number of links must be a positive number.'); 
     } 

     if (! is_numeric($this->cur_page)) 
     { 
      $this->cur_page = $base_page; 
     } 

     // Is the page number beyond the result range? 
     // If so we show the last page 
     if ($this->use_page_numbers) 
     { 
      if ($this->cur_page > $num_pages) 
      { 
       $this->cur_page = $num_pages; 
      } 
     } 
     else 
     { 
      if ($this->cur_page > $this->total_rows) 
      { 
       $this->cur_page = ($num_pages - 1) * $this->per_page; 
      } 
     } 

     $uri_page_number = $this->cur_page; 

     if (! $this->use_page_numbers) 
     { 
      $this->cur_page = floor(($this->cur_page/$this->per_page) + 1); 
     } 

     // Calculate the start and end numbers. These determine 
     // which number to start and end the digit links with 
     $start = (($this->cur_page - $this->num_links) > 0) ? $this->cur_page - ($this->num_links - 1) : 1; 
     $end = (($this->cur_page + $this->num_links) < $num_pages) ? $this->cur_page + $this->num_links : $num_pages; 

     // Is pagination being used over GET or POST? If get, add a per_page query 
     // string. If post, add a trailing slash to the base URL if needed 
     if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE) 
     { 
      $this->base_url = rtrim($this->base_url).'&amp;'.$this->query_string_segment.'='; 
     } 
     else 
     { 
      $this->base_url = rtrim($this->base_url, '/') .'/'; 
     } 

     // And here we go... 
     $output = ''; 

     // Render the "First" link 
     if ($this->first_link !== FALSE AND $this->cur_page > ($this->num_links + 1)) 
     { 
      $first_url = ($this->first_url == '') ? $this->base_url : $this->first_url; 
      $output .= $this->first_tag_open.'<a id="'.$first_url.'" onclick="show_ajax_cards(this)" '.$this->anchor_class.'href="javascript:void(0)">'.$this->first_link.'</a>'.$this->first_tag_close; 
     } 

     // Render the "previous" link 
     if ($this->prev_link !== FALSE AND $this->cur_page != 1) 
     { 
      if ($this->use_page_numbers) 
      { 
       $i = $uri_page_number - 1; 
      } 
      else 
      { 
       $i = $uri_page_number - $this->per_page; 
      } 

      if ($i == 0 && $this->first_url != '') 
      { 
       $output .= $this->prev_tag_open.'<a id="'.$this->first_url.'" onclick="show_ajax_cards(this)"'.$this->anchor_class.'href="javascript:void(0)">'.$this->prev_link.'</a>'.$this->prev_tag_close; 
      } 
      else 
      { 
       $i = ($i == 0) ? '' : $this->prefix.$i.$this->suffix; 
       $output .= $this->prev_tag_open.'<a id="'.$this->base_url.$i.'" onclick="show_ajax_cards(this)"'.$this->anchor_class.'href="javascript:void(0)">'.$this->prev_link.'</a>'.$this->prev_tag_close; 
      } 

     } 

     // Render the pages 
     if ($this->display_pages !== FALSE) 
     { 
      // Write the digit links 
      for ($loop = $start -1; $loop <= $end; $loop++) 
      { 
       if ($this->use_page_numbers) 
       { 
        $i = $loop; 
       } 
       else 
       { 
        $i = ($loop * $this->per_page) - $this->per_page; 
       } 

       if ($i >= $base_page) 
       { 
        if ($this->cur_page == $loop) 
        { 
        // $output .= $this->cur_tag_open.$loop.$this->cur_tag_close; // Current page 
        // $output .= $this->num_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$n.'">'.$loop.'</a>'.$this->num_tag_close; 
        } 
        else 
        { 
         $n = ($i == $base_page) ? '' : $i; 

         if ($n == '' && $this->first_url != '') 
         { 
          $output .= $this->num_tag_open.'<a id="'.$this->first_url.'" onclick="show_ajax_cards(this)" '.$this->anchor_class.'href="javascript:void(0)">'.$loop.'</a>'.$this->num_tag_close; 
         } 
         else 
         { 
          $n = ($n == '') ? '' : $this->prefix.$n.$this->suffix; 

          $output .= $this->num_tag_open.'<a id="'.$this->base_url.$n.'" onclick="show_ajax_cards(this)" '.$this->anchor_class.'href="javascript:void(0)">'.$loop.'</a>'.$this->num_tag_close; 
         } 
        } 
       } 
      } 
     } 

     // Render the "next" link 
     if ($this->next_link !== FALSE AND $this->cur_page < $num_pages) 
     { 
      if ($this->use_page_numbers) 
      { 
       $i = $this->cur_page + 1; 
      } 
      else 
      { 
       $i = ($this->cur_page * $this->per_page); 
      } 

      $output .= $this->next_tag_open.'<a id="'.$this->base_url.$this->prefix.$i.$this->suffix.'" onclick="show_ajax_cards(this)"'.$this->anchor_class.'href="javascript:void(0)">'.$this->next_link.'</a>'.$this->next_tag_close; 
     } 

     // Render the "Last" link 
     if ($this->last_link !== FALSE AND ($this->cur_page + $this->num_links) < $num_pages) 
     { 
      if ($this->use_page_numbers) 
      { 
       $i = $num_pages; 
      } 
      else 
      { 
       $i = (($num_pages * $this->per_page) - $this->per_page); 
      } 
      $output .= $this->last_tag_open.'<a id="'.$this->base_url.$this->prefix.$i.$this->suffix.'" onclick="show_ajax_cards(this)"'.$this->anchor_class.'href="javascript:void(0)"'.$this->last_link.'</a>'.$this->last_tag_close; 
     } 

     // Kill double slashes. Note: Sometimes we can end up with a double slash 
     // in the penultimate link so we'll kill all double slashes. 
     $output = preg_replace("#([^:])//+#", "\\1/", $output); 

     // Add the wrapper HTML if exists 
     $output = $this->full_tag_open.$output.$this->full_tag_close; 

     return $output; 
    } 

और ध्यान में रखते हुए एक समारोह है कि इस

function show_ajax_cards(obj) 
{ 

    var baseurl  = obj.id; 
    $.ajax({ 
      url: baseurl, 
      data:"baseurl="+baseurl, 
      type: 'POST', 
      success: function(html) 
       { 
        $('#cardReplace').html(html); 
       }        
     }); 
} 
0

तरह दिखेगा बनाने लागू करें लाइव क्लिक करें, यदि आप नियंत्रक से डेटा वापस कर रहे हैं:

jQuery("#pagination a").live('click',function(e){ 
    e.preventDefault(); 
    jQuery.ajax({ 
    type: "POST", 
    url: jQuery(this).attr("href"), 
    success: function(res){ 
     jQuery('#multiple_selection_data').html(res); 
    } 
    }); 
    return false; 
});