【发布时间】:2021-06-13 10:05:14
【问题描述】:
我正在使用 php、ajax 和 jquery 显示来自数据库的数据结果。 我已经使用 codeigniter 4 pager library 进行分页。但是当我点击下一页的分页序列号重置并从 1-10 重新开始时,我想要的只是当我点击下一页继续从 11-20、21-30 等开始计数序列号时...... 请帮忙。谢谢。
//html表格
<table>
<thead>
<tr>
<th>No.</th>
<th>MyColumn</th>
</tr>
</thead>
<tbody class="result"></tbody>
</table>
//jquery 显示();
function show(){
let ajax = $.ajax({
url : '/Controller/getAll',
method : 'post',
dataType: 'json',
cache : false
});
ajax.done(function(data){
let serialNumber = 1;
$.each(data.result, function(k, v){
html += `<tr>
<td>${serialNumber}</td>
<td>${v.myColums}</td>
</tr>`;
serialNumber++;
});
});
$('.result').html(html);
}
// php 控制器
public function getAll()
{
$result = $this->model->getData()->asObject()->paginate('10');
$pager = $this->model->pager;
foreach($result as $row){
$output[] = [
'id' => $row->id,
'myColumn' => $row->myColumn,
];
}
$jsonArray = [
'result' => $output,
'pager' => $pager->links(),
];
return $this->response->setJSON($jsonArray);
}
【问题讨论】:
-
每次单击下一页按钮时,都会发送一个 ajax 请求,因此在 ajax.done 方法中,您的 serialNumber 变量再次从 1 开始。但是,如果您在函数范围之外声明 serialNumber 变量,您的变量应该在每一步中递增,而不是再次从 1 重置。
-
为什么有一个js定义的“serialNumber”?它是什么意思?它有什么用?它是干什么用的?看起来它应该是存储在数据库中的东西,例如
${v.id} -
不,我没有从 db 中显示 id,我想要的只是序列号。 ${v.id} 将根据我的需要添加和其他列。非常感谢!
-
为什么只回答错误的一半?好的,所以你不想要 v.id - 但仍然:为什么你有一个 js 定义的“serialNumber”?这是什么意思?它有什么用?它是做什么用的?
-
SerialNumber 和 ${v.id} 是不同的,因为 ${v.id} 代表数据库中主键的数据 id,但我没有在页面上显示它。如果需要的话,后面会添加表ID列。
标签: javascript jquery ajax codeigniter-4