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 分页