tp5的ajax搜索后分页,修改TP5的分页类使之Ajax分页有效

article/2025/10/20 8:54:28

Thinkphp 5.1采用Ajax分页后,首页自然不是问题,但是后续的页面链接仍然指向原地址;虽然可以取回数据,但是没有样式的渲染——因为此时的页面只有“一部分”本身就没有CSS样式!

解决的办法有很多,比如重新创建分页类,或者通过Composer下载一个;但这无疑会增加系统的复杂程度,最后利用Thinkphp自带的分页类直接修改,毕竟只需要修改一下部分。

具体修改如下图所示

990fa8e1d4ca?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

01.png 原始文件位置及具体修改内容

待修改的文件地址为:

thinkphp/library/think/paginator/driver/Bootstrap.php

protected function getAvailablePageWrapper($url, $page) {

return '

' . $page . '';

}

将其修改如下:

/**

* 生成一个可点击的按钮

*

* @param string $url

* @param int $page

* @return string

*/

protected function getAvailablePageWrapper($url, $page) {

// return '

' . $page . ''; // 原版仅该行

// 原版直接取得数据,由于使用Ajax动态获取页面,就必须废掉href而采用onClick的方式

// 分页请求的地址是现成的——htmlentities($url),可以直接用于loadAjaxHTML(url,location)的url参数中

// location直接采用默认的content即可

// 由于动态拼接生成

并且嵌套了多层的文本及变量,只能拆分成两个变量处理

$AjaxHTM = 'loadAjaxHTML("' . htmlentities($url) . '");';

$onclick = "οnclick='" . $AjaxHTM . "'";

return '

' . $page . '';

}

注意:loadAjaxHTML() 为Ajax动态提取页面的javascript函数,其他使用方法具体参考:《TP5实现Ajax获取页面并渲染》

/**

* 动态加载页面并渲染

* @param {文本} url 请求的地址 "{:url('admin/Leave/history2')}"

* @param {文本} location 需要加载页面的位置id值(如)

* -----------------------------------------------------------------------------

* 注意:

* 1. Html页面A标签的onclick必须采用以下格式:

* οnclick='loadAjaxHTML("{:url('admin/Leave/history2')}","content");'

* 2. 思路:直接利用MVC的View部分——Thinkphp5的 return $this->fetch()取回页面

* 好处是中间可以用任意的对页面进行赋值和分配,在后端不需要任何的修改

* 3. 意味着通过TP5实现Ajax动态加载页面做到不刷新的APP级别Web应用的可实现性!

* -----------------------------------------------------------------------------

*/

function loadAjaxHTML(url,location){

//设置默认参数

var location = arguments[1] ? arguments[1] : 'content'; // 加载位置id

// 采用JQuery的Get方法得到页面

$.get(url, function(data) {

// 必须使用原生的innerHTML才能不丢失CSS样式

document.getElementById(location).innerHTML = data;

// showMsg("页面加载完毕");

});

}


http://chatgpt.dhexx.cn/article/ZOxTyqx2.shtml

相关文章

DataTables PHP AJAX 分页

DataTables 是一个 jQuery 插件,可以更轻松地在网页上添加分页。 只需要添加记录列表,它就会自动调整数据并创建具有搜索和排序功能的分页。 有一些选项可用于实现AJAX 分页。 在本教程中,我将展示如何使用 PHP 在 DataTables 中实现 AJAX …

html ajax分页,简单ajax 分页

简单分页: 效果图: 思路: 数据渲染》数据遍历(每页显示已规定好的条数).bindList()和执行分页渲染.initPaginator() 点击分页和下一页的时候,重新请求数据渲染,对应的数据重新遍历。 代码实现: html:分页测…

Ajax做分页

用这种ajax做分页的方法比较简单&#xff0c;把代码直接复制就可以&#xff0c;然后根据实际更改一下里面的参数。 1.设置分页显示显示的样式&#xff0c;显示效果如下。 <style type"text/css"> *{ margin:0px auto; padding:0px; font-family:"微软雅黑…

ajax实现分页操作

利用ajax请求数据的特点&#xff0c;来实现分页操作。 主要是利用ajax进行后端分页&#xff0c;当点击对应的页数&#xff0c;ajax请求数据库对应的数据&#xff0c;后端分页可以降低前端请求数据的压力&#xff0c;页面渲染起来比较流畅。 根据后台请求的数据&#xff0c;来创…

XUnit测试框架-Python unittest

选择 语言选择 本次个人作业我选择的语言是Python,了解学习Python有一段时间了但是一直没有练习&#xff0c;所以这次玩蛇&#xff0c;使用的版本是Python3.6。 开发工具选择 我选择的IDE是Pycharm,个人认为Pycharm是一款不错的Py开发工具&#xff0c;用起来得心应手&#xff0…

单元测试-xUnit

单元测试-xUnit Assert常用方法 名称描述Eqalexpected.result)断言结果与期望值相等。该方法的重载版本用于比较不同的类型和集合。该方法的另一种版本接受一个额外参数该对象实现了用于比较对象的IEqualityComparer接口NotEqual(expected,result)断言结果不等于期望值True(r…

xUnit安装及注意事项

前言 对于单元测试&#xff0c;想必大家都已再熟悉不过了&#xff0c;同时单元测试的重要性也越发突出&#xff0c;在招聘中也特别强调单元测试&#xff0c;但是对于微软内置的单元测试还是太过于繁琐&#xff0c;于是都在寻找一种简洁并且更加轻量的测试工具。用的最多的莫过于…

Xunit.net 单元测试学习——按顺序测试

最近一直在提高编码的质量&#xff0c;为了保证质量&#xff0c;必须有一套趁手的兵器&#xff0c;Xunit.Net 就是如此霸气的利器。 怎么编写单元测试 怎么会有如此低级的疑问呢&#xff1f;因为从接触单元测试&#xff0c;到使用上&#xff0c;真的不是一个简单的心路历程&am…

单元测试-xUnit总结

xUnit总结 什么是xUnit xUnit.net是针对.NET Framework的免费&#xff0c;开源&#xff0c;以社区为中心的单元测试工具。 自动化测试的优点 可以频繁的进行测试可以在任何时间进行测试&#xff0c;也可以按计划定时进行&#xff0c;例如&#xff1a;可以在半夜进行自动化测…

单元测试之 Xunit

&#xfeff;&#xfeff; 单元测试项目中引入 xunit.dll 1. 有类 Common&#xff0c;中有方法 Divide(int a, int b)&#xff0c;代码如下 public class Common {public int Divide(int a, int b){if (b 0)return 0;return a / b;} } 2. 在单元测试项目中为方法 Divide 写单元…

使用 xunit 编写测试代码

使用 xunit 编写测试代码 Intro xunit 是 .NET 里使用非常广泛的一个测试框架&#xff0c;有很多测试项目都是在使用 xunit 作为测试框架&#xff0c;不仅仅有很多开源项目在使用&#xff0c;很多微软的项目也在使用 xunit 来作为测试框架。 Get Started 在 xunit 中不需要标记…

C#_Unit Testing 一(xUnit)

一、前言 在VS中新建一个xunit的项目&#xff0c;该项目中已经自动安装了一些Nuget包&#xff0c;其中一个关键的就是xunit&#xff0c;https://xunit.net/。 同时&#xff0c;在同一个解决方案下我们也新建了一个类库&#xff0c;这个类库就是需要被测试的。这里提一点&…

在.NET开发中的单元测试工具之(2)——xUnit.Net

在上一篇《在.NET开发中的单元测试工具之(1)——NUnit》中讲述了如何使用NUnit在.NET开发中进行单元测试以及NUnit的一些缺点&#xff0c;今天将讲述如何使用xUnit.Net来进行单元测试。 xUnit.Net介绍 xUnit.net的创造者的创造者是Jim Newkirk和Brad Wilson从包括NUnit及其它单…

单元测试中Assert详解-xUnit

前一篇&#xff1a;详谈单元测试-xUnit 简介 Assert 是基于代码的返回值、对象的最终状态、事件是否发生等情况来评估测试的结果。Assert 的结果可能是 Pass 或者 Fail。如果所有的 Asserts 都通过了&#xff0c;那么整个测试就通过了。如果任何 Asserts 失败了&#xff0c;那…

xUnit-Moq框架

基于上一次的单元测试-xUnit进行 Models文件夹 Staff类修改为&#xff1a; public class Staff { public int Id { get; set; } public string Name { get; set; } public string State { get; set; } public int Age { get; set; } } 创建一个IRepository接口…

xUnit.net入门

xUnit.net是一个免费的、开源的、以社区为中心的.net框架单元测试工具。 本文在Win10Visual Studio2022-Preview下&#xff0c;创建一个简单的.Net Framework4.8的xUnit.net测试项目。 1、新建项目 打开VS2022&#xff0c;新建项目&#xff0c;弹出“创建新项目”窗口&#…

xUnit总结--学习笔记

xUnit.net是针对.NET Framework的免费&#xff0c;开源&#xff0c;以社区为中心的单元测试工具。 自动化测试的优点# 可以频繁的进行测试可以在任何时间进行测试&#xff0c;也可以按计划定时进行&#xff0c;例如&#xff1a;可以在半夜进行自动化测试比人工测试速度快可以更…

Xunit入门

本节记录Xunit单元测试的入门知识&#xff0c;以2.1版本作为入门示例。 1、新建一个类库项目 2、在Nuget中搜索xunit&#xff0c;这里我们只选xUnit.net和xunit.runner.visualstudio包。 其中xUnit是框架&#xff0c;而xunit.runner.visualstudio是vs插件包&#xff0c;让我们可…

3. 使用xUnit进行单元测试

实现.NET Core时&#xff0c;xUnit可用于创建单元测试&#xff0c;.NET Core团队使用了该产品。xUnit是一个开源实现方案&#xff0c;创建NUnit 2.0的开发人员创建了它。现在&#xff0c;.NET Core命令行界面支持MSTest和xUnit。 提示&#xff1a; xUnit的文档可参阅https://…

详谈单元测试-xUnit

简介 xUnit.net 是针对 .NET 的免费&#xff0c;开源单元测试框架&#xff0c;可并行测试、数据驱动测试。测试项目需引用被测试项目&#xff0c;从而对其进行测试&#xff0c;测试项目同时需要引用 xUnit。测试编写完成后&#xff0c;用 Test Runner 来测试项目&#xff0c;T…