现在大部分前端模版的分页中都有文本框,输入页码后进行跳转的界面。
CodeIgniter4的默认分页模版没有文本输入框的跳转功能。
准备在框架的基础上自行实现这个功能。
CodeIgniter4的默认分页模版没有文本输入框的跳转功能。
准备在框架的基础上自行实现这个功能。
首先需要自定义分页器的模版
1、修改分页器的配置文件 app\Config\Pager.php,执行自定义的模版页面
2、然后在view目录中新建一个 pager_full.php 文件。将 CodeIgniter\Pager\Views\default_full.php的文件代码拷贝进去,或者自己重新实现一个。
在 pager_full.php 适当位置加入文本框和跳转代码
3、在 system\Pager\PagerRenderer.php 中增加函数 getTemplatePage
[复制到剪贴板] |
public array $templates = [
'default_full' => 'pager_full',
'default_simple' => 'CodeIgniter\Pager\Views\default_simple',
'default_head' => 'CodeIgniter\Pager\Views\default_head',
];
2、然后在view目录中新建一个 pager_full.php 文件。将 CodeIgniter\Pager\Views\default_full.php的文件代码拷贝进去,或者自己重新实现一个。
在 pager_full.php 适当位置加入文本框和跳转代码
[复制到剪贴板] |
<li><input class="pull-left" style="margin-top: 2px;" type="text" name="custompage" size="1" title="输入页码,按回车快速跳转" value="" onkeydown="if(event.keyCode==13) {window.location='<?=$pager->getTemplatePage()?>'.replace('%7Bpg%7D',this.value);}" /></li>
3、在 system\Pager\PagerRenderer.php 中增加函数 getTemplatePage
[复制到剪贴板] |
/**
* @return string 返回含page信息的URL,page值 由 {pg} 占位
*/
public function getTemplatePage(){
$uri = clone $this->uri;
if ($this->segment === 0) {
$uri->addQuery($this->pageSelector, '{pg}');
} else {
$uri->setSegment($this->segment, '{pg}');
}
return URI::createURIString(
$uri->getScheme(),
$uri->getAuthority(),
$uri->getPath(),
$uri->getQuery(),
$uri->getFragment()
);
}