文档章节

PHP之 AJAX分页

 小贵子_IOS
发布于 2016/04/20 22:01
字数 922
阅读 33
收藏 0
点赞 1
评论 0

在ThinkPHP框架中 采用AJAX访问网络要注意  在url中  url: '<?php echo U('Goods/index','',FALSE);?>',在ThinkPHP中自动生成把 GoodsController.class.php中的方法自动生成url 可以直接访问。

在没有用框架的时候要访问 .php中的方法要在.php中实例化之后才能访问。 在url中 url:'ajax.php',

还有在函数输出json的时候 不能再方法中带有  输出类型的函数  否则返回数据类型就不是json。


使用  jQuery绑定方法:

#('a').bind('click',function(){ alert("bind click a");}); 

#('a').live('click',function(){ alert("bind click a");}); 

#('a').delegate('click',function(){ alert("bind click a");}); 

详情访问http://wenku.baidu.com/link?url=IXNhqbJH8Hia5i_4BSOoCau6MEwaAPhSHhQsNxxU7mCOK3xbE1zwcgQ810QVqf76nmiJ4mlWdzUMYz4pYpFfkYqFoxIQx_trW3puTIu_lOe;



代码:

在没有使用框架的时候

html中的的代码:

  <div class="container">

            <div class="lists"><ul id="ul_lists" class="clearfix"></ul></div> 

            <div class="page" id="page"></div>

        </div>

         <script type="text/javascript" src="http://www.sucaihuo.com/Public/js/other/jquery.js"></script>

        <script type="text/javascript">

            var page_cur = 1; //当前页

            var total_num, page_size, page_total_num;//总记录数,每页条数,总页数

            function getData(page) { //获取当前页数据

                $.ajax({

                    type: 'GET',   //请求方式

                    url: 'ajax.php', //请求路径

                    data: {'page': page - 1},  //请求数据

                    dataType: 'json',   //数据返回格式

                    success: function(json) {   //成功返回的数据时json格式的

                      

                        total_num = json.total_num;//总记录数

                        page_size = json.page_size;//每页数量

                        page_cur = page;//当前页

                        page_total_num = json.page_total_num;//总页数

                        var li = "";

                        var list = json.list;

                        $.each(list, function(index, array) { //遍历返回json

                            li += "<li><a href='#'><img src='" + array['pic'] + "'>" + array['title'] + "</a></li>";

                        });

                        $("#ul_lists").append(li);

                    },

                    complete: function() {

                        getPageBar();//js生成分页,可用程序代替

                    },

                    error: function() {

                        alert("数据异常,请检查是否json格式");

                    }

                });

            }


            function getPageBar() { //js生成分页

                if (page_cur > page_total_num)

                    page_cur = page_total_num;//当前页大于最大页数

                if (page_cur < 1)

                    page_cur = 1;//当前页小于1

                page_str = "<span>共" + total_num + "条</span><span>" + page_cur + "/" + page_total_num + "</span>";

                if (page_cur == 1) {//若是第一页

                    page_str += "<span>首页</span><span>上一页</span>";

                } else {

                    page_str += "<span><a href='javascript:void(0)' data-page='1'>首页</a></span><span><a href='javascript:void(0)' data-page='" + (page_cur - 1) + "'>上一页</a></span>";

                }

                if (page_cur >= page_total_num) {//若是最后页

                    page_str += "<span>下一页</span><span>尾页</span>";

                } else {

                    page_str += "<a href='javascript:void(0)' data-page='" + (parseInt(page_cur) + 1) + "'> 下一页 </a><span><a href='javascript:void(0)' data-page='" + page_total_num + "'>尾页</a></span>";

                }

                $("#page").html(page_str);   //把HTML代码添加到 #page中

            }


            $(function() {

                getData(1);//默认第一页

                $("#page a").live('click', function() { //live 向未来的元素添加事件处理器,不可用bind

                    var page = $(this).attr("data-page");//获取当前页中<a  href>中的值

                    getData(page)

                });

            });

        </script>

ajax.php 文件是

$host="localhost";  //数据库地址

$db_user="root";   //用户名

$db_pass="123";  //用户密码

$db_name="thinkphp";  //数据库名

$timezone="Asia/Shanghai";   //使用时间的时区


$link=mysql_connect($host,$db_user,$db_pass);  //连接数据库

mysql_select_db($db_name,$link);   //选择数据库名

mysql_query("SET names UTF8");   //数据传输格式


header("Content-Type: text/html; charset=utf-8");

date_default_timezone_set($timezone); //北京时间

$page = intval($_GET['page']); //当前页

$total_num = mysql_num_rows(mysql_query("select id from goods")); //总记录数

$page_size = 9; //每页数量

$page_total = ceil($total_num / $page_size); //总页数

$page_start = $page * $page_size;

$arr = array(

   "total_num" => $total_num,

   "page_size" => $page_size,

   "page_total_num" => $page_total,

);

$query = mysql_query("SELECT id,title,pic FROM goods ORDER BY ID ASC LIMIT $page_start,$page_size");

while ($row = mysql_fetch_array($query)) {

   $arr['list'][] = array(

       'id' => $row['id'],

       'title' => $row['title'],

       'pic' => $row['pic'],

   );

}

echo json_encode($arr);




在ThinkPHP中

.html中文件 主要的变化是  url:'<?php echo U('Goods/ajaxGetData');?>',  其他的一致。

GoodsController.class.php中的代码是

 public function ajaxGetData(){

     $row_total=0;              //总共有多少条数据

     $page_total=0;             //总共有多少页

     $page_current = 1;         //当前是第几页

     $page_size = 9;            //每一页显示多少条数据

     $page_current_size = 0;    //当前是第一条数据

    $conn = mysql_connect("localhost","root","123");  //数据库连接

            mysql_select_db("thinkphp",$conn);        //打开指定数据库

            mysql_query("set names utf8");            //设置数据库的编码格式

    $row_total = mysql_num_rows( mysql_query("select id from goods"));   //查询总共数据

    $page_total = ceil($row_total/$page_size);

    if ($_GET) {

        $page_current =$_GET['page'];

        $page_current_size = ($page_current-1)*$page_size;

    }

    $arr = array(

        "page_total"   => $page_total,

        "page_current" => $page_current,

        "row_total"    => $row_total,

        );

    $quer = mysql_query("select id , title, pic from goods  order by id asc limit $page_current_size ,$page_size");

    while ($row = mysql_fetch_array($quer)) {

        $arr ['list'] [] = array(

            "id"    => $row['id'],

            "pic"   => $row['pic'],

            "title" => $row['title'],

            );

    }   

    echo json_encode($arr);

    }


© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 15
码字总数 6756
作品 0
松江
Ajax实现phpcms列表分页效果

phpcms列表页ajax分页效果: 1、在 /phpcms/modules/模块下加多一个ajaxlist文件夹,在其文件夹下新建一个index.php,内容如下:

Jack_phpcms ⋅ 2017/09/04 ⋅ 0

19个 jQuery 分页插件和教程,附带实例

在这篇文章中我们将向你介绍 20 个最棒的 jQuery 分页插件以及教程,并提供在线演示。 1.客户端的jQuery 分页插件jPages jPages 是一个客户端的分页插件,但提供很多特性例如自动翻页、键盘和...

凯文加内特 ⋅ 2014/04/30 ⋅ 0

20 个 jQuery 分页插件和教程,附带实例

在这篇文章中我们将向你介绍 20 个最棒的 jQuery 分页插件以及教程,并提供在线演示。 1.客户端的jQuery 分页插件jPages jPages 是一个客户端的分页插件,但提供很多特性例如自动翻页、键盘和...

红薯 ⋅ 2012/04/04 ⋅ 6

SEO和体验并重的超链接设计

如果你要了解PJAX,请看: AJAX + window.history.pushState/onpopstate (需要HTML5支持) https://github.com/defunkt/jquery-pjax 我下面说的是锚点链接(书签链接)这个方案: AJAX + window.l...

eechen ⋅ 2016/11/09 ⋅ 1

PHP分页技术的代码和示例

本文来自:10 Helpful PHP Pagination Scripts For Web Developers 分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互...

岭南六少 ⋅ 2011/08/16 ⋅ 0

JSP/PHP基于Ajax的分页功能实现

最近JSP课程实训,然后自己做了一个新闻后台控制台。新闻列表的展示如果不用页面部分刷新(Ajax)来做的话,翻页的时候会重刷新页面(感觉很难看··),所以决定根据书上的例子+搜索的代码用Aja...

Lanz ⋅ 2014/01/06 ⋅ 0

jQuery+Ajax+PHP无刷新分页

下载演示地址:http://www.erdangjiade.com/js/2.html 效果图: 本文使用jQuery+Ajax+PHP+Mysql,通过实例讲解如何实现Ajax无刷新分页效果。 #ul_lists以列表的形式展现数据,信息包括商品图...

2当家的 ⋅ 2017/03/13 ⋅ 1

PHP+jQuery实现Ajax分页效果:jPaginate插件的应用

jPaginate是基于jQuery的动感滚动分页插件,它的表现形式是像分页的按钮一样,非常有意思的是这些按钮却可以滚动,可以通过单击或鼠标滑向点两侧的小箭头来控制按钮的前后滚动。 调用jPagina...

mickelfeng ⋅ 2013/12/28 ⋅ 2

11 个 PHP 分页脚本推荐

Web开发中,分页设计必不可少。本文列举了10个PHP分页脚本,希望对你的web开发会有帮助。 列表中大部分,提供演示和代码下载。 1) My Pagination With Ajax 2) MySql Pagination 3) Facebook...

小卒过河 ⋅ 2011/08/09 ⋅ 4

用Jquery处理PHP返回的JSON格式数据的三种方法

JSON数据格式在做AJAX应用时广泛使用,而且AJAX前端对其处理也很灵活,通常有这样几种方法: 后端代码(PHP): $arr = array(array('id'=>'12','name'=>'baidu'),array('id'=>'13', 'name'=>'...

前台满300减30 ⋅ 2012/01/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 36分钟前 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

[知乎]SSH框架

网上图书馆管理系统包括管理员管理和图书管理,图书借阅,查询模块等等,网上商城包括前台页面和后台管理页面,两个都是以前别人的实际项目,只是别人用的不是SSH,我把他们改用SSH了,除了S...

颖伙虫 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 昨天 ⋅ 0

482. License Key Formatting - LeetCode

Question 482. License Key Formatting Solution 思路:字符串转化为char数组,从后遍历,如果是大写字母就转化为小写字母,如果是-就忽略,如果遍历了k个字符(排除-)就追加一个-。 Java实现...

yysue ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部