bootstrap mysql分页_bootstrap实现分页

这篇博客介绍了如何利用JavaScript、Ajax和Bootstrap实现数据库(MySQL)分页功能。通过Ajax请求Servlet获取JSON数据,结合HTML和jQuery动态更新页面内容。文章详细阐述了分页的实现思路,包括上一页、下一页功能的实现,并讨论了如何根据需求调整每页显示的数据数量。同时,提到了在Servlet中处理异常情况,确保值的有效性。
摘要由CSDN通过智能技术生成

算法改进:【主要使用js配合mysql的limit实现上一页,下一页】

【在查询数据的时候,使用了limit,现在,我固定每页显示3条记录,进行分页】

首先ajax向servlet发起请求,然后请求的数json数据。现在,开始设计ajax,html。

一、由于每次翻页,之前的数据都要被覆盖/清空。所以使用div来包裹里面将被清空的内容。

为什么要保留div内,因为我们还要向里面添加数据,保留他,类似于参照物。

现在,存放数据的地方有可基本设计框架,那么现在,是不是应该有一样东西来对数据进行操作呢,如:上一页,下一页。

二、使用a标签,实现上一页,下一页功能。

这里,我使用nextpage方法实现下一页,上一页使用prevpage。先有这样一个思路

上一页下一页

既然如此,那么现在是实现数据加载的ajax了

三、ajax实现初始加载、上一页、下一页。

key表示第多少条记录数,即记录的起始数据,我们首先思考,当其他页面的操作改变时,上一页的参数和下一页的参数应该都会改变,随key而改变。

大概如下:

//1、默认加载第一页

clickA(0);//2、加载数据的函数

functionclickA(key){

$(".h").empty();

$.ajax({

type :"post",

async :true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)

url : "Page", //请求发送到Page处

data : {'key':key},

dataType :"json", //返回数据形式为json

success : function(result) {//请求成功时执行该函数内容,result即为服务器返回的json对象

for(var k inresult){//将获得的数据加入col-md-12 column

$("#con").before("

"+result[k].title+"2>

"+result[k].name+"

View details »"+"

");//改变a标签prev的属性,下面这两句是重点

$("#prev").attr("href","javascript:prevpage("+key+")");

$("#next").attr("href","javascript:nextpage("+key+")");

}

},

error :function(XMLHttpRequest, textStatus,errorMsg) {//请求失败时执行该函数

alert("错误码:"+XMLHttpRequest.status);

alert("错误状态:"+XMLHttpRequest.readyState);

alert("数据请求数据失败!"+errorMsg);

}

});

}//3、实现上一页功能:

functionprevpage(prev){if(prev==0){clickA(0);}else{

prev= prev-3;

clickA(prev);

}//4、实现下一页功能

var numa=0;functionnextpage(numa){//获取当前的key//将key+3,然后交给clickA//获取后台带到的key,在key的基础上增加

numa=numa+3;

clickA(numa);

}

}

主要记录思想实现,代码有待优化,但思路已经很清晰,那么,以上是在确认每页显示3条数据,那么,要实现每页显示n条数据,该如何实现呢。想必不用多少了。

那么随后,请自己思考,如何将这里提出的问题实现,同时打包成一个属于自己的东西呢?这个步骤就不写了。

那么后台servlet如何控制,防止出现异常呢?那就是值的问题,凡是出现null或者"",或者<0等都将其值为0,这样就可以解决了。

下一篇,是完整的例子。

Bootstrap本身并不提供连接数据库的功能,但是可以使用一些其他的工具和技术来实现连接数据库并实现分页功能。以下是一些常用的方法: 1. 使用服务器端脚本语言如PHP、Node.js等连接数据库,查询数据并生成分页HTML代码。然后将生成的HTML代码嵌入到Bootstrap页面中。例如,使用PHP和MySQL实现分页: ```php <?php // 连接MySQL数据库 $mysqli = new mysqli("localhost", "username", "password", "database"); // 查询数据 $result = $mysqli->query("SELECT COUNT(*) FROM mytable"); $row = $result->fetch_assoc(); $total = $row['COUNT(*)']; // 数据总数 $pagesize = 10; // 每页显示的记录数 $pagecount = ceil($total / $pagesize); // 总页数 if (!isset($_GET['page'])) { $page = 1; } else { $page = intval($_GET['page']); } $start = ($page - 1) * $pagesize; // 当前页的起始记录 $result = $mysqli->query("SELECT * FROM mytable LIMIT $start, $pagesize"); // 生成分页HTML代码 $html = '<ul class="pagination">'; if ($page > 1) { $html .= '<li class="page-item"><a class="page-link" href="?page='.($page-1).'">上一页</a></li>'; } else { $html .= '<li class="page-item disabled"><a class="page-link" href="#">上一页</a></li>'; } for ($i = 1; $i <= $pagecount; $i++) { if ($i == $page) { $html .= '<li class="page-item active"><a class="page-link" href="#">'.$i.'</a></li>'; } else { $html .= '<li class="page-item"><a class="page-link" href="?page='.$i.'">'.$i.'</a></li>'; } } if ($page < $pagecount) { $html .= '<li class="page-item"><a class="page-link" href="?page='.($page+1).'">下一页</a></li>'; } else { $html .= '<li class="page-item disabled"><a class="page-link" href="#">下一页</a></li>'; } $html .= '</ul>'; // 输出表格和分页 echo '<table class="table">'; echo '<thead><tr><th>ID</th><th>Name</th></tr></thead>'; echo '<tbody>'; while ($row = $result->fetch_assoc()) { echo '<tr><td>'.$row['id'].'</td><td>'.$row['name'].'</td></tr>'; } echo '</tbody>'; echo '</table>'; echo $html; // 关闭数据库连接 $mysqli->close(); ?> ``` 2. 使用JavaScript框架如AngularJS、React等连接数据库并生成分页HTML代码。这种方法通常需要编写一些JavaScript代码、HTML模板和服务器端API接口来实现。例如,使用AngularJS和Node.js实现分页: ```html <div ng-app="myApp" ng-controller="myCtrl"> <table class="table"> <thead> <tr> <th>ID</th> <th>Name</th> </tr> </thead> <tbody> <tr ng-repeat="item in data"> <td>{{item.id}}</td> <td>{{item.name}}</td> </tr> </tbody> </table> <ul class="pagination"> <li ng-class="{disabled: page == 1}"><a href="#" ng-click="prev()">上一页</a></li> <li ng-class="{active: p == page}" ng-repeat="p in pages"><a href="#" ng-click="goto(p)">{{p}}</a></li> <li ng-class="{disabled: page == pageCount}"><a href="#" ng-click="next()">下一页</a></li> </ul> </div> <script src="https://cdn.bootcss.com/angular.js/1.7.5/angular.min.js"></script> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) { $scope.pageSize = 10; $scope.pageCount = 0; $scope.page = 1; $scope.pages = []; $scope.loadData = function() { var start = ($scope.page - 1) * $scope.pageSize; $http.get('/api/data?start=' + start + '&pagesize=' + $scope.pageSize) .then(function(response) { $scope.data = response.data; }); }; $scope.loadPage = function(page) { if (page < 1 || page > $scope.pageCount) { return; } $scope.page = page; $scope.loadData(); }; $scope.prev = function() { $scope.loadPage($scope.page - 1); }; $scope.next = function() { $scope.loadPage($scope.page + 1); }; $scope.goto = function(page) { $scope.loadPage(page); }; $http.get('/api/count') .then(function(response) { $scope.pageCount = Math.ceil(response.data / $scope.pageSize); $scope.pages = []; for (var i = 1; i <= $scope.pageCount; i++) { $scope.pages.push(i); } $scope.loadData(); }); }); </script> ``` 在上面的示例中,`$http`服务用于连接Node.js服务器端API接口获取数据和总记录数。服务器端API接口可以使用Express框架编写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值