jQuery+Ajax+PHP+Mysql实现分页显示数据

css

<style type="text/css">
        #loading{
            position: absolute;
            top: 200px;
            left:400px;
        }
        #container .pagination ul li.inactive,
        #container .pagination ul li.inactive:hover{
            background-color:#ededed;
            color:#bababa;
            border:1px solid #bababa;
            cursor: default;
        }
        #container .data ul li{
            list-style: none;
            margin: 5px 0 5px 50px;
            color: #000;
            font-size: 14px;
        }  

        #container .pagination{
            width: 1000px;
            height: 25px;
        }
        #container .pagination ul li{
            list-style: none;
            float: left;
            border: 1px solid #006699;
            padding: 2px 6px 2px 6px;
            margin: 0 3px 0 3px;
            font-family: arial;
            font-size: 14px;
            color: #006699;
            font-weight: bold;
            background-color: #f2f2f2;
        }
        #container .pagination ul li:hover{
            color: #fff;
            background-color: #006699;
            cursor: pointer;
        }
        .go_button{
            background-color:#f2f2f2;border:1px solid #006699;color:#cc0000;padding:2px 6px 2px 6px;cursor:pointer;position:absolute;margin-top:-1px;
        }
        .total{
            float:left;font-family:arial;color:#999;
        }
    </style>  

js

<script type="text/javascript">
        $(document).ready(function(){
            function loading_show(){
                $(‘#loading‘).html("<img src=‘./loading.gif‘/>").fadeIn(‘fast‘);
            }

            function loading_hide(){
                $(‘#loading‘).fadeOut(‘fast‘);
            }

            function loadData(page){
                loading_show();
                $.ajax({
                    type: "POST",
                    url: "load.php",
                    data: "page="+page,
                    success: function(msg){
                        $("#container").ajaxComplete(function(event, request, settings){
                            loading_hide();
                            $("#container").html(msg);
                        });
                    }
                });
            }
            loadData(1);  // For first time page load default results
            $(‘#container .pagination li.active‘).live(‘click‘,function(){
                var page = $(this).attr(‘p‘);
                loadData(page);
            });

            $(‘#go_btn‘).live(‘click‘,function(){
                var page = parseInt($(‘.goto‘).val());
                var no_of_pages = parseInt($(‘.total‘).attr(‘a‘));
                if(page != 0 && page <= no_of_pages){
                    loadData(page);
                }else{
                    alert(‘Enter a PAGE between 1 and ‘+no_of_pages);
                    $(‘.goto‘).val("").focus();
                    return false;
                }
            });
        });
    </script>    

html

<script src="http://libs.baidu.com/jquery/1.7.1/jquery.min.js"></script>
<div id="main">
    <div id="loading"></div>
    <div id="container">
        <div class="data"></div>
        <div class="pagination"></div>
    </div>
</div>

php

<?php
    if($_POST[‘page‘]){
        $page = $_POST[‘page‘];      //当前页数
        $cur_page = $page;            //当前页数
        $page -= 1;
        $per_page = 10;
        $previous_btn = true;
        $next_btn = true;
        $first_btn = true;
        $last_btn = true;
        $start = $page * $per_page;          //0 10 20 30 40   第一页:page = 1
        //数据库配置信息
        define("HOST","localhost");    //主机名
        define("USER","root");        //账号
        define("PASS","root");        //密码
        define("DBNAME","waterfall");    //数据库名

        $link = mysql_connect("localhost","root","root")or die("连接数据库失败:".mysql_error());
        mysql_select_db("waterfall",$link);
        mysql_query("set NAMES ‘utf8‘");

        $query_page_data = "SELECT * FROM `content` LIMIT $start, $per_page";
        $result_page_data = mysql_query($query_page_data) or die(‘MySql Error‘ . mysql_error());
        $msg = "";
        while ($row = mysql_fetch_array($result_page_data)) {
        $htmlmsg=htmlspecialchars($row[‘img‘]);
            $msg .= "<li><b>" . $row[‘id‘] . "</b> " . $htmlmsg . "</li>";
        }
        $msg = "<div class=‘data‘><ul>" . $msg . "</ul></div>"; // 数据内容

        /* --------------------------------------------- */
        $query_pag_num = "SELECT COUNT(*) AS count FROM content";
        $result_pag_num = mysql_query($query_pag_num);
        $row = mysql_fetch_array($result_pag_num);
        $count = $row[‘count‘];
        $no_of_paginations = ceil($count / $per_page);  

        /* ---------------计算该循环的起始和endign值----------------------------------- */
        if ($cur_page >= 7) {
            $start_loop = $cur_page - 3;
            if ($no_of_paginations > $cur_page + 3)
                $end_loop = $cur_page + 3;
            else if ($cur_page <= $no_of_paginations && $cur_page > $no_of_paginations - 6) {
                $start_loop = $no_of_paginations - 6;
                $end_loop = $no_of_paginations;
            } else {
                $end_loop = $no_of_paginations;
            }
        } else {
            $start_loop = 1;
            if ($no_of_paginations > 7)
                $end_loop = 7;
            else
                $end_loop = $no_of_paginations;
        }
        /* ----------------------------------------------------------------------------------------------------------- */
        $msg .= "<div class=‘pagination‘><ul>";  

        // 为使第一个按钮
        if ($first_btn && $cur_page > 1) {
            $msg .= "<li p=‘1‘ class=‘active‘>First</li>";
        } else if ($first_btn) {
            $msg .= "<li p=‘1‘ class=‘inactive‘>First</li>";
        }  

        // 为使上一个按钮
        if ($previous_btn && $cur_page > 1) {
            $pre = $cur_page - 1;
            $msg .= "<li p=‘$pre‘ class=‘active‘>Previous</li>";
        } else if ($previous_btn) {
            $msg .= "<li class=‘inactive‘>Previous</li>";
        }
        for ($i = $start_loop; $i <= $end_loop; $i++) {  

            if ($cur_page == $i)
                $msg .= "<li p=‘$i‘ style=‘color:#fff;background-color:#006699;‘ class=‘active‘>{$i}</li>";
            else
                $msg .= "<li p=‘$i‘ class=‘active‘>{$i}</li>";
        }  

        // 为使下一个按钮
        if ($next_btn && $cur_page < $no_of_paginations) {
            $nex = $cur_page + 1;
            $msg .= "<li p=‘$nex‘ class=‘active‘>Next</li>";
        } else if ($next_btn) {
            $msg .= "<li class=‘inactive‘>Next</li>";
        }  

        // 要启用结束按钮
        if ($last_btn && $cur_page < $no_of_paginations) {
            $msg .= "<li p=‘$no_of_paginations‘ class=‘active‘>Last</li>";
        } else if ($last_btn) {
            $msg .= "<li p=‘$no_of_paginations‘ class=‘inactive‘>Last</li>";
        }
        $goto = "<input type=‘text‘ class=‘goto‘ size=‘1‘ style=‘float:left;margin-top:-1px;margin-left:60px;‘/><input type=‘button‘ id=‘go_btn‘ class=‘go_button‘ value=‘Go‘/>";
        $total_string = "<span style=‘float:left;margin-left:40px;‘ class=‘total‘ a=‘$no_of_paginations‘>Page <b>" . $cur_page . "</b> of <b>$no_of_paginations</b></span>";
        $msg = $msg . "</ul>" . $goto . $total_string . "</div>";  // 为分页内容
        echo $msg;
    }
?>  

jQuery+Ajax+PHP+Mysql实现分页显示数据

时间: 2024-10-13 11:55:48

jQuery+Ajax+PHP+Mysql实现分页显示数据的相关文章

PHP之分页显示数据-新闻系统

一.项目设计 1.项目要求 2.主页面使用frame框架进行设计,内容如下: index.php <span style="font-family:SimSun;font-size:18px;"><html> <frameset rows="80%,20%" frameborder="no" border="0" cols="900px"> <frameset co

jquery $.ajax()获取服务器上的json数据

$.ajax({ url: 'http://127.0.0.1/work/open.json', success: function(data) { var ob = data; if (typeof(data) == 'string') { ob = stringtoObject(data); } }); var stringtoObject = function(json) { return eval("(" + json + ")"); } url为获取jso

Flask分页显示数据

在做网页的过程中,随着展示的数据增多,如果要在一页中显示全部内容,浏览速度会变慢且不符合实际需求.在 Web 浏览器中, 内容多的网页需要花费更多的时间生成.下载和渲染, 所以网页内容变多会降低用户体验的质量.这一问题的解决方法是分页显示数据,进行片段式渲染. 在页面中渲染数据 <span style="font-size:18px;">app/main/views.py</span> @main.route('/userManage_admin', metho

jquery ajax请求成功,返回了数据,但是不进success的问题 【转】

这几天一直被 ajax请求成功,返回了数据,但是不进success的问题困扰着,怎么弄就是解决不了,总以为 是:$(document).ready(function(){});没起作用,一直找页面加载的方法来试,整了好几天没整出来....今天比较幸运, 在网上找到了一篇关于这方面问题的文章,按上面的方法一试,果然ok了,哈哈哈,真是太高兴了....终于解决这个问题了. 这个问题的原因(来自http://www.myexception.cn/ajax/413061.html的拷贝内容): ----

基于Jquery+Ajax+Json+存储过程 高效分页

1 CREATE PROCEDURE [dbo].[PAGINATION] 2 @FEILDS VARCHAR(1000),--要显示的字段 3 @PAGE_INDEX INT,--当前页码 4 @PAGE_SIZE INT,--页面大小 5 @ORDERTYPE BIT,--当为0时 则为 desc 当为1 时 asc 6 @ANDWHERE VARCHAR(1000)='',--where语句 不用加where 7 @ORDERFEILD VARCHAR(100), --排序的字段 8 @T

分页显示数据----前端(将数据库中的信息分页显示到网页)

在上篇文章中,我们已经完成了分页显示的后台处理,现在进行前端的处理. 期望显示结果: 由于对于不同的项目.不同的数据库数据部分不同,所以我们将分页部分提取出来,单独建立jsp页面: 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib prefix="c"

repeater 分页显示数据

表名:ChinaStates 控件:Repeater 查询代码DA: public class ChinaStatesDA { private DataClassesDataContext Context;              // 构建LINQ public ChinaStatesDA() { Context = new DataClassesDataContext(); } public List<ChinaStates> Select(int nowye,int numbers)

html,jquery,ajax,servlet,mysql实现前端数据写入数据库

Myeclipse下新建WebProject项目 程序仅实现前端传数据到后端写入数据库 前端html代码: <!DOCTYPE html> <html> <head> <title>register.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv=

jQuery $.ajax跨域-JSONP获取JSON数据(转载)

Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示和行为的情况下在后台进行数据检索.使用 XMLHttpRequest 函数获取数据,它是一种 API,允许客户端 JavaScript 通过 HTTP 连接到远程服务器.Ajax 也是许多 mashup 的驱动力,它可将来自多个地方的内容集成为单一 Web 应用程序. 不过,由于受到浏览器的限制,该