Ajax 分页不会更改活动链接

Posted

技术标签:

【中文标题】Ajax 分页不会更改活动链接【英文标题】:Ajax pagination doesn't change the active link 【发布时间】:2014-01-25 03:14:30 【问题描述】:

您好,我将使用 codeigniter 进行 ajax 分页.. 我已经尝试过代码,但似乎分页不会改变活动链接.. 请帮我.. 这是我的ajax

    $(function() 
applyPagination();
function applyPagination() 
  $("#paging a").click(function() 
    var url = $(this).attr("href");
    $.ajax(
      type: "POST",
      data: "ajax=1",
      url: url,
      beforeSend: function() 
        $("#things").html("");
      ,
      success: function(msg) 
        $("#things").html(msg);
        applyPagination();
      
    );
    return false;
  );

);

我尝试过的另一个 ajax 代码

<script>
$(document).ready(function()
    $("#paging a").click(function()
    
        var this_url = $(this).attr("href");

        $.post(this_url, ,function(data)
            $("div#things").html(data);
        );
        return false;
    );
);

我的视图分页ID

<div class="paging" id="paging">
<aside>
<?php echo $links; ?>
</aside>
</div>

我的控制器

public function index($start_row="")

    /*Pagination*/
    $start_row = $this->uri->segment(4);

    $per_page=5;
    if(trim($start_row) == '')
    
        $start_row = 0;
    

    $result = $this->abouthistory_model->history_list();
    $data["CatId"]=$this->viewbook_model->getCategory();
    $total_rows=count($result);
    $this->load->library('pagination');

    $config['uri_segment'] = 4;
    $config['base_url'] = base_url()."about/abouthistory/index";
    $config['total_rows'] = $total_rows;
    $config['per_page'] =$per_page; 
    $config['is_ajax_paging']  =  TRUE; // default FALSE
    $config['paging_function'] = 'ajax_paging'; // Your jQuery paging

    $this->pagination->initialize($config); 
    $resultLimited =  $this->abouthistory_model->history_listLimited($start_row,$per_page);
    $data["CatId"]=$this->viewbook_model->getCategory();
    $data["links"]=$this->pagination->create_links();

请帮帮我

【问题讨论】:

尝试不使用 ajax,可能是您使用了错误的段,而当我们这样做时,您不必在每次获得点击事件时重新附加点击事件结果变成一个div(只要你不重新加载你的点击事件仍然存在)。 但我需要 ajax,因为我将在包含 2 个分页的其他页面中实现它..:( load->view() 在哪里? 我不是要你永久丢失 ajax 部分,我是告诉你你指定了错误的 uri 段,它应该是 3 而不是 4,这就是它给你错误结果的原因。 mmm.. uri 段需要 4,因为 xxx/xxx/about/abouthistory 段 【参考方案1】:

一个完美的codeigniter ajax分页,请参考以下链接:

http://tohin.wordpress.com/2008/08/12/codeigniter-ajax-pagination/

我用这个,工作正常....

这是我用来显示员工详细信息的代码:

--ajax 控制器--

public function employeeListAjax()

    if (!$this->input->is_ajax_request())
    
        redirect(site_url(), 'refresh');
    
    $config['anchor_class'] = '';
    $config['show_count'] = true;
    $config['div'] = '#emp_list'; // div for displaying ajax
    $config['base_url'] = site_url('employee/employeeListAjax');
    $config['total_rows'] = sizeof($this->emp->empdetail());
    $config['per_page'] = 10;
    $this->jquery_pagination->initialize($config);
    $data['links'] = $this->jquery_pagination->create_links();
    $data['page'] = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    $data['empdet'] = $this->emp->empdetail($config['per_page'], $data['page']);
    $this->load->view('modules/employee/ajax_emp_list', $data);

--页面中的ajax脚本--

<script>
    jQuery(function($)
        $.post("<?php echo site_url('employee/employeeListAjax');?>",
        
        ,
        function(response)
        
        setTimeout("showAjax('#emp_list', '"+escape(response)+"')", 100);
        );
    );
</script>

你必须从以下位置下载 jquery_pagination 库:

https://github.com/neotohin/CodeIgniter-Ajax-pagination-Library/blob/master/Jquery_pagination.php

并将其复制到codeigniter的应用程序文件夹中的库文件夹中。

在使用之前,您需要使用以下方式加载库:

$this->load->library('Jquery_Pagination');

谢谢...

showAjax是一个自定义的js函数,用于显示一些效果的desponse:

<script>
    function showAjax(id, response)
    
    jQuery(id).hide();
    jQuery(id).html(unescape(response));
    jQuery(id).fadeIn(200);
    
</script>

【讨论】:

你是尝试 jquery 的还是 gingin 的 ajax 的? :) 我想问你..我不明白这部分 $html = $this->jquery_pagination->create_links() 。 br(1) 。 $this->table->generate($this->model 因为我没有使用table..如果我没有使用table怎么生成? 然后你对视图做了什么?回声什么?或者请分享您的代码以解决分页问题..谢谢:) 谢谢..renish 我需要一些帮助..我有错误显示未定义 showAjax..为什么?

以上是关于Ajax 分页不会更改活动链接的主要内容,如果未能解决你的问题,请参考以下文章

通过 Ajax / Jquery 问题的 Codeigniter 分页

Codeigniter 分页从不同页面和不同员工的不同活动链接开始,而代码相同

在Codeigniter中搜索的分页不起作用

用于更改活动类的 jquery 不起作用

Scrapy 跟随分页 AJAX 请求 - POST

Codeigniter分页从不同页面和不同员工的不同活动链接开始,而代码相同