Php CodeIgniter分页仅显示固定数字(1,2,3)
我做了一个分页,从视图通过Php CodeIgniter分页仅显示固定数字(1,2,3),php,jquery,ajax,codeigniter,codeigniter-pagination,Php,Jquery,Ajax,Codeigniter,Codeigniter Pagination,我做了一个分页,从视图通过ajax传递数据。如果它跳过$config['uri\u segemnt']。在这里,我手动设置每页的总行数和。 该函数创建所有html标记和pagination标记,并将它们附加到视图。它正在工作,但分页每次只显示三个数字。似乎分页未计算总行数,如何解决此问题? 这是我的功能和视图 PHP控制器函数 public function getVoucherajax() { if (!empty($_POST)) { $offset
ajax
传递数据。如果它跳过$config['uri\u segemnt']
。在这里,我手动设置每页的总行数和。
该函数创建所有html标记
和pagination标记
,并将它们附加到视图
。它正在工作,但分页每次只显示三个数字。似乎分页未计算总行数,如何解决此问题?
这是我的功能和视图
PHP控制器函数
public function getVoucherajax() {
if (!empty($_POST)) {
$offset = $_POST['limit'];
$selecttedList = $_POST['listID'];
} else {
$offset = 0;
}
$count = $this->getTotalOCount($selecttedList);
$voucherCount = $count[0]['vcount'];
//$limit = perpage
$allvouchers = $this->voucher_model->getallvouchers($this->perPage(), $offset, $selecttedList);
$config = array();
$config['total_rows'] = 56;
$config['per_page'] = 10;
////bootstrap config for pagination
$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);
echo 'Row Count -'.' '.$config['total_rows'];
$links = $this->pagination->create_links();
// print_r($allvouchers);
?>
<div class="col-sm-12">
<table class="table table-hover">
<thead>
<tr>
<th width="50">id</th>
<th width="150">Created</th>
<th width="150">Valid From</th>
<th width="150">Valid To</th>
<th width="100">Type</th>
<th width="100">State</th>
</tr>
</thead>
<tbody>
<?php
foreach ($allvouchers['allVouchers'] as $rows) {
?>
<tr>
<td><?php echo $rows['id'] ?></td>
<td><?php echo $rows['created'] ?></td>
<td><?php echo $rows['validfrom'] ?></td>
<td><?php echo $rows['validto'] ?></td>
<td><?php echo $rows['type'] ?></td>
<td><?php echo $rows['state'] ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php echo $links; ?>
</div>
<?php
}
公共函数getVoucherajax(){
如果(!空($\u POST)){
$offset=$_POST['limit'];
$selectedlist=$\u POST['listID'];
}否则{
$offset=0;
}
$count=$this->getTotalOCount($selectedList);
$voucherCount=$count[0]['vcount'];
//$limit=每页
$ALLDEGORIES=$this->凭证\模型->获取所有凭证($this->perPage(),$offset,$selectedList);
$config=array();
$config['total_rows']=56;
$config['per_page']=10;
////分页的引导配置
$config['full_tag_open']=';
$config['full_tag_close']='
';
$config['first_link']=false;
$config['last_link']=false;
$config['first_tag_open']='';
$config['first_tag_close']=' ;
$config['prev_link']='laquo';
$config['prev_tag_open']='';
$config['prev_tag_close']=' ;
$config['next_link']='raquo';
$config['next_tag_open']='';
$config['next_tag_close']=' ;
$config['last_tag_open']='';
$config['last_tag_close']=' ;
$config['cur_tag_open']=';
$config['num_tag_open']='';
$config['num_tag_close']=' ;
$this->pagination->initialize($config);
回显“行计数-”。$config['total_rows'];
$links=$this->pagination->create_links();
//打印(所有凭证);
?>
身份证件
创建
有效期自
有效的
类型
状态
您可能只看到三个链接,因为默认情况下分页类设置为显示2个链接(当前页面两侧各有2个链接)。这可以通过$config['num_links']更改
。如果您在第2页,它是否仍然只显示到第3页?是的,但根据行总数,它将改变。。但在这里它不会发生。即使有10000行,当您在第1页时,它将始终显示当前页任一侧的2个链接。在您在第1页的屏幕截图中,它将显示[1,2,3]。如果你在第6页,它会显示[4,5,6,7,8],不幸的是它没有发生。我删除了一些configs
,因为在这里通过`ajax`发送它们,这是我在分页配置中唯一更改的内容。
不幸的是它没有发生。我删除了一些config
($config[“base\u url”],$config[“uri_段
”]),因为$config[“base_url”]
和$config[“uri_段
不是必需的,因为ajax
。在这里我也手动设置了它们。正如您在这里提到的,如果我减少每页计数,结果应该会改变..但不会发生
<script>
$(function () {
loadList()
loadVoucher()
pagination()
function loadList() {
$.ajax({
method: "POST",
url: "<?php echo base_url(); ?>login/loadListsAjax",
}).done(function ($data) {
$("#list").html($data);
});
}
function loadVoucher() {
$("#list").change(function () {
var listID = $(this).val();
$.ajax({
method: "POST",
url: "<?php echo base_url(); ?>login/getVoucherajax",
data: {limit: 0,listID: listID}
}).done(function($data){
$("#contents").html($data);
});
});
}
function pagination(){
$(document).on("click",".pagination li a",function(event) {
event.preventDefault();
// alert('sddsd');
var segment = $(this).attr("data-ci-pagination-page");
if(!segment){
segment = 0;
}
var list = $("#list").val();
// alert(list);
//
$.ajax({
method: "POST",
url: "<?php echo base_url(); ?>login/getVoucherajax",
data: {limit: segment,listID: list}
}).done(function($data){
$("#contents").html($data);
});
});
}
});
</script>
<div class="col-sm-9">
<div class="row">
<div class="col-sm-3">
<select id="list" class="form-control">
</select>
</div>
</div>
<div id="contents" class="row" style="padding-top: 100px;">
</div>