最近在接触jquery和ajax,当前项目也会用到分页,为了用户体验更好一些,就准备用无刷新分页,这个demo很适合新手学习查看,写的比较清晰,话不多说,直接上代码吧。
首先是html页面,index.html,代码如下:
<span 1</span> <span <!</span><span DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span ></span> <span 2</span> <span <</span><span html </span><span xmlns</span><span ="http://www.w3.org/1999/xhtml"</span><span ></span> <span 3</span> <span <</span><span head</span><span ></span> <span 4</span> <span <</span><span meta </span><span http-equiv</span><span ="Content-Type"</span><span content</span><span ="text/html; charset=utf-8"</span> <span /></span> <span 5</span> <span <</span><span title</span><span ></span>php+mysql+ajax+jquery分页<span </</span><span title</span><span ></span> <span 6</span> <span 7</span> <span <</span><span script </span><span type</span><span ="text/javascript"</span><span src</span><span ="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"</span><span ></</span><span script</span><span ></span> <span 8</span> <span <</span><span script </span><span type</span><span ="text/javascript"</span><span src</span><span ="ajaxPager.js"</span><span ></</span><span script</span><span ></span> <span 9</span> <span <</span><span style</span><span ></span> <span 10</span> <span #main</span><span {</span> <span 11</span> <span width</span><span :</span><span 980px</span><span ;</span> <span 12</span> <span margin</span><span :</span><span 0px auto</span><span ;</span> <span 13</span> <span }</span> <span 14</span> <span ul </span><span 15</span> <span {</span> <span 16</span> <span list-style</span><span :</span><span none</span><span ;</span> <span 17</span> <span margin</span><span :</span><span 0px</span><span ;</span> <span 18</span> <span }</span> <span 19</span> <span #list li</span><span {</span> <span 20</span> <span width</span><span :</span><span 220px</span><span ;</span> <span 21</span> <span height</span><span :</span><span 280px</span><span ;</span> <span 22</span> <span float</span><span :</span><span left</span><span ;</span> <span 23</span> <span margin-left</span><span :</span><span 10px</span><span ;</span> <span 24</span> <span }</span> <span 25</span> <span .pager .cur </span><span {</span> <span 26</span> <span border-top-color</span><span :</span><span rgb(255, 255, 255)</span><span ;</span> <span 27</span> <span border</span><span :</span><span 1px solid #fff</span><span ;</span> <span 28</span> <span background</span><span :</span><span 0</span><span ;</span> <span 29</span> <span font-weight</span><span :</span><span bold</span><span ;</span> <span 30</span> <span color</span><span :</span><span #000</span><span ;</span> <span 31</span> <span }</span> <span 32</span> <span .pager a, .pager span </span><span {</span> <span 33</span> <span margin-top</span><span :</span><span 5px</span><span ;</span> <span 34</span> <span }</span> <span 35</span> <span .pager a, .pager span </span><span {</span> <span 36</span> <span background</span><span :</span><span none repeat scroll 0 0 #fff</span><span ;</span> <span 37</span> <span border</span><span :</span><span 1px solid #e7ecf0</span><span ;</span> <span 38</span> <span color</span><span :</span><span #0000cd</span><span ;</span> <span 39</span> <span float</span><span :</span><span left</span><span ;</span> <span 40</span> <span height</span><span :</span><span 22px</span><span ;</span> <span 41</span> <span line-height</span><span :</span><span 22px</span><span ;</span> <span 42</span> <span margin-right</span><span :</span><span 5px</span><span ;</span> <span 43</span> <span overflow</span><span :</span><span hidden</span><span ;</span> <span 44</span> <span text-align</span><span :</span><span center</span><span ;</span> <span 45</span> <span text-decoration</span><span :</span><span none</span><span ;</span> <span 46</span> <span width</span><span :</span><span auto</span><span ;</span> <span 47</span> <span padding</span><span :</span><span 0 8px</span><span ;</span> <span 48</span> <span }</span> <span 49</span> <span .pager span </span><span {</span> <span 50</span> <span background</span><span :</span><span none repeat scroll 0 0 #fff</span><span ;</span> <span 51</span> <span border</span><span :</span><span 1px solid #e7ecf0</span><span ;</span> <span 52</span> <span color</span><span :</span><span #0000cd</span><span ;</span> <span 53</span> <span float</span><span :</span><span left</span><span ;</span> <span 54</span> <span height</span><span :</span><span 22px</span><span ;</span> <span 55</span> <span line-height</span><span :</span><span 22px</span><span ;</span> <span 56</span> <span margin-right</span><span :</span><span 5px</span><span ;</span> <span 57</span> <span overflow</span><span :</span><span hidden</span><span ;</span> <span 58</span> <span text-align</span><span :</span><span center</span><span ;</span> <span 59</span> <span text-decoration</span><span :</span><span none</span><span ;</span> <span 60</span> <span width</span><span :</span><span auto</span><span ;</span> <span 61</span> <span padding</span><span :</span><span 0 8px</span><span ;</span> <span 62</span> <span }</span> <span 63</span> <span .pager </span><span {</span> <span 64</span> <span border-top</span><span :</span><span 0</span><span ;</span> <span 65</span> <span padding</span><span :</span><span 12px 0 30px 15px</span><span ;</span> <span 66</span> <span float</span><span :</span><span left</span><span ;</span> <span 67</span> <span }</span> <span 68</span> <span .clearfix </span><span {</span> <span 69</span> <span display</span><span :</span><span block</span><span ;</span> <span 70</span> <span }</span> <span 71</span> <span .pager </span><span {</span> <span 72</span> <span float</span><span :</span><span left</span><span ;</span> <span 73</span> <span font-family</span><span :</span><span Arial</span><span ;</span> <span 74</span> <span font-size</span><span :</span><span 13px</span><span ;</span> <span 75</span> <span }</span> <span 76</span> <span .clearfix </span><span {</span> <span 77</span> <span zoom</span><span :</span><span 1</span><span ;</span> <span 78</span> <span }</span> <span 79</span> <span </</span><span style</span><span ></span> <span 80</span> <span 81</span> <span 82</span> <span </</span><span head</span><span ></span> <span 83</span> <span 84</span> <span <</span><span body</span><span ></span> <span 85</span> <span 86</span> <span 87</span> <span <</span><span div </span><span id</span><span ="main"</span><span ></span> <span 88</span> <span <</span><span div </span><span id</span><span ="pagecount"</span><span class</span><span ="pager clearfix"</span><span ></</span><span div</span><span ><</span><span div </span><span id</span><span ="loading"</span><span ></</span><span div</span><span ></span> <span 89</span> <span <</span><span br </span><span /></span> <span 90</span> <span <</span><span br </span><span /></span> <span 91</span> <span <</span><span br </span><span /></span> <span 92</span> <span <</span><span br </span><span /></span> <span 93</span> <span <</span><span div </span><span id</span><span ="list"</span><span ></span> <span 94</span> <span <</span><span ul</span><span ></</span><span ul</span><span ></span> <span 95</span> <span </</span><span div</span><span ></span> <span 96</span> <span </</span><span div</span><span ></span> <span 97</span> <span </</span><span body</span><span ></span> <span 98</span> <span </</span><span html</span><span ></span>
样式我随便写的,毕竟我样式写的很差,大家可以自己换样式的。
然后就是js代码了,ajaxPager.js,代码如下:
<span 1</span> <span var</span> curPage = 1; <span //</span><span 当前页码</span> <span 2</span> <span var</span><span total,pageSize,totalPage; </span><span 3</span> <span //</span><span 获取数据</span> <span 4</span> <span function</span><span getData(page){ </span><span 5</span> <span $.ajax({ </span><span 6</span> type: 'POST'<span , </span><span 7</span> url: 'pages.php'<span , </span><span 8</span> data: {'pageNum':page-1<span }, </span><span 9</span> dataType:'json'<span , </span><span 10</span> beforeSend:<span function</span><span (){ </span><span 11</span> $("#loading").html("<img id='loadin'g src='loading.gif' alt="jquery ajax php+mysql 无刷新分页 详细实例_PHP教程" >"<span ); </span><span 12</span> <span }, </span><span 13</span> success:<span function</span><span (json){ </span><span 14</span> $("#loading").html(""<span ); </span><span 15</span> $("#list ul"<span ).empty(); </span><span 16</span> total = json.total; <span //</span><span 总记录数</span> <span 17</span> pageSize = json.pageSize; <span //</span><span 每页显示条数</span> <span 18</span> curPage = page; <span //</span><span 当前页</span> <span 19</span> totalPage = json.totalPage; <span //</span><span 总页数</span> <span 20</span> <span var</span> li = ""<span ; </span><span 21</span> <span var</span> list =<span json.list; </span><span 22</span> $.each(list,<span function</span>(index,array){ <span //</span><span 遍历json数据列</span> <span 23</span> li += "<li><a href='#'><img src='"+array['pic']+"' alt="jquery ajax php+mysql 无刷新分页 详细实例_PHP教程" ></a><p>"+array['title'].substring(0,10)+"</p></li>"<span ; </span><span 24</span> <span }); </span><span 25</span> $("#list ul"<span ).append(li); </span><span 26</span> <span }, </span><span 27</span> complete:<span function</span>(){ <span //</span><span 生成分页条</span> <span 28</span> <span getPageBar(); </span><span 29</span> <span }, </span><span 30</span> error:<span function</span><span (){ </span><span 31</span> alert("数据加载失败"<span ); </span><span 32</span> <span } </span><span 33</span> <span }); </span><span 34</span> <span } </span><span 35</span> <span 36</span> <span //</span><span 获取分页条</span> <span 37</span> <span function</span><span getPageBar(){ </span><span 38</span> <span //</span><span 页码大于最大页数</span> <span 39</span> <span if</span>(curPage>totalPage) curPage=<span totalPage; </span><span 40</span> <span //</span><span 页码小于1</span> <span 41</span> <span if</span>(curPage<1) curPage=1<span ; </span><span 42</span> pageStr = "<span class=''>共"+total+"条"+curPage+"/"+totalPage+"</span>"<span ; </span><span 43</span> <span 44</span> <span //</span><span 如果是第一页</span> <span 45</span> <span if</span>(totalPage<=4<span ) </span><span 46</span> <span { </span><span 47</span> <span if</span>(curPage==1<span ){ </span><span 48</span> pageStr += "<span class='cur'>1</span>"<span ; </span><span 49</span> <span for</span>(<span var</span> i=2;i<=totalPage;i++<span ) </span><span 50</span> <span { </span><span 51</span> pageStr += "<a href='javascript:void(0)' rel='"+i+"'>"+i+"</a>"<span ; </span><span 52</span> <span } </span><span 53</span> }<span else</span><span { </span><span 54</span> pageStr += "<a href='javascript:void(0)' rel='1'><<</a><a href='javascript:void(0)' rel='"+(curPage-1)+"'><</a>"<span ; </span><span 55</span> <span for</span>(<span var</span> i=1;i<=totalPage;i++<span ) </span><span 56</span> <span { </span><span 57</span> <span if</span>(i==<span curPage) </span><span 58</span> <span { </span><span 59</span> pageStr += "<span class='cur'>"+i+"</span>" <span 60</span> <span } </span><span 61</span> <span else</span> <span 62</span> <span { </span><span 63</span> pageStr += "<a href='javascript:void(0)' rel='"+i+"'>"+i+"</a>"<span ; </span><span 64</span> <span } </span><span 65</span> <span } </span><span 66</span> <span 67</span> <span } </span><span 68</span> <span } </span><span 69</span> <span else</span><span //</span><span 当页数大于5的时候就要这样显示1 2 3 4 ...</span> <span 70</span> <span { </span><span 71</span> <span if</span>(curPage<=3<span ){ </span><span 72</span> <span if</span>(curPage==1<span ) </span><span 73</span> <span { </span><span 74</span> pageStr += "<span class='cur'>1</span>"<span ; </span><span 75</span> <span } </span><span 76</span> <span else</span> <span 77</span> <span { </span><span 78</span> pageStr += "<a href='javascript:void(0)' rel='1'><<</a><a href='javascript:void(0)' rel='"+(curPage-1)+"'><</a>"<span ; </span><span 79</span> pageStr += "<span class='cur'><a href='javascript:void(0)' rel='1'>1</a></span>"<span ; </span><span 80</span> <span } </span><span 81</span> <span for</span>(<span var</span> i=2;i<=4;i++<span ) </span><span 82</span> <span { </span><span 83</span> <span if</span>(i==<span curPage) </span><span 84</span> <span { </span><span 85</span> pageStr += "<span class='cur'>"+i+"</span>" <span 86</span> <span } </span><span 87</span> <span else</span> <span 88</span> <span { </span><span 89</span> pageStr += "<a href='javascript:void(0)' rel='"+i+"'>"+i+"</a>"<span ; </span><span 90</span> <span } </span><span 91</span> <span } </span><span 92</span> pageStr += "<span class='cur'>...</span>"<span ; </span><span 93</span> }<span else</span><span { </span><span 94</span> pageStr += "<a href='javascript:void(0)' rel='1'><<</a><a href='javascript:void(0)' rel='"+(curPage-1)+"'><</a>"<span ; </span><span 95</span> pageStr += "<span class='cur'>...</span>"<span ; </span><span 96</span> <span if</span>(curPage>totalPage-2<span ) </span><span 97</span> <span { </span><span 98</span> <span for</span>(<span var</span> i=totalPage-2;i<=totalPage;i++<span ) </span><span 99</span> <span { </span><span 100</span> <span if</span>(i==<span curPage) </span><span 101</span> <span { </span><span 102</span> pageStr += "<span class='cur'>"+i+"</span>" <span 103</span> <span } </span><span 104</span> <span else</span> <span 105</span> <span { </span><span 106</span> pageStr += "<a href='javascript:void(0)' rel='"+i+"'>"+i+"</a>"<span ; </span><span 107</span> <span } </span><span 108</span> <span } </span><span 109</span> <span } </span><span 110</span> <span else</span> <span 111</span> <span { </span><span 112</span> pageStr += "<a href='javascript:void(0)' rel='"+(curPage-1)+"'>"+(curPage-1)+"</a>"<span ; </span><span 113</span> pageStr += "<span class='cur'>"+curPage+"</span>"<span ; </span><span 114</span> pageStr += "<a href='javascript:void(0)' rel='"+(parseInt(curPage)+1)+"'>"+(parseInt(curPage)+1)+"</a>"<span ; </span><span 115</span> pageStr += "<span class='cur'>...</span>"<span ; </span><span 116</span> <span } </span><span 117</span> <span } </span><span 118</span> <span } </span><span 119</span> <span //</span><span 如果是最后页</span> <span 120</span> <span if</span>(curPage>=<span totalPage){ </span><span 121</span> <span //</span><span pageStr += "<span>></span> <span>>></span>";</span> <span 122</span> }<span else</span><span { </span><span 123</span> pageStr += "<a href='javascript:void(0)' rel='"+(parseInt(curPage)+1)+"'>></a><a href='javascript:void(0)' rel='"+totalPage+"'>>></a>"<span ; </span><span 124</span> <span } </span><span 125</span> <span 126</span> $("#pagecount"<span ).html(pageStr); </span><span 127</span> <span } </span><span 128</span> <span 129</span> $(<span function</span><span (){ </span><span 130</span> getData(1<span ); </span><span 131</span> $("#pagecount a").live('click',<span function</span><span (){ </span><span 132</span> <span var</span> rel = $(<span this</span>).attr("rel"<span ); </span><span 133</span> <span if</span><span (rel){ </span><span 134</span> <span getData(rel); </span><span 135</span> <span } </span><span 136</span> <span }); </span><span 137</span> });
因为项目的需要,我这个页面页数显示只能显示几页,比如就这样 >>,要改显示的,就在ajaxPager.js里面改。
$.ajax({ 中url: 'pages.php',处理就在pages.php中处理。那么就来看看pages.php中的代码:
<span 1</span> <?<span php </span><span 2</span> <span include_once</span>('connect.php'<span ); </span><span 3</span> <span 4</span> <span $page</span> = <span intval</span>(<span $_POST</span>['pageNum'<span ]); </span><span 5</span> <span 6</span> <span $result</span> = <span mysql_query</span>("select id from food"<span ); </span><span 7</span> <span $total</span> = <span mysql_num_rows</span>(<span $result</span>);<span //</span><span 总记录数</span> <span 8</span> <span 9</span> <span $pageSize</span> = 8; <span //</span><span 每页显示数</span> <span 10</span> <span $totalPage</span> = <span ceil</span>(<span $total</span>/<span $pageSize</span>); <span //</span><span 总页数</span> <span 11</span> <span 12</span> <span $startPage</span> = <span $page</span>*<span $pageSize</span><span ; </span><span 13</span> <span $arr</span>['total'] = <span $total</span><span ; </span><span 14</span> <span $arr</span>['pageSize'] = <span $pageSize</span><span ; </span><span 15</span> <span $arr</span>['totalPage'] = <span $totalPage</span><span ; </span><span 16</span> <span $query</span> = <span mysql_query</span>("select id,title,pic from food order by id asc limit <span $startPage</span>,<span $pageSize</span>"<span ); </span><span 17</span> <span while</span>(<span $row</span>=<span mysql_fetch_array</span>(<span $query</span><span )){ </span><span 18</span> <span $arr</span>['list'][] = <span array</span><span ( </span><span 19</span> 'id' => <span $row</span>['id'], <span 20</span> 'title' => <span $row</span>['title'], <span 21</span> 'pic' => <span $row</span>['pic'], <span 22</span> <span ); </span><span 23</span> <span } </span><span 24</span> <span //</span><span print_r($arr);</span> <span 25</span> <span echo</span> json_encode(<span $arr</span><span ); </span><span 26</span> ?>
上面当然还有数据库连接了啦,这个应该很简单吧,还是贴出来connect.php:
<span 1</span> <?<span php </span><span 2</span> <span include_once</span>('connect.php'<span ); </span><span 3</span> <span 4</span> <span $page</span> = <span intval</span>(<span $_POST</span>['pageNum'<span ]); </span><span 5</span> <span 6</span> <span $result</span> = <span mysql_query</span>("select id from food"<span ); </span><span 7</span> <span $total</span> = <span mysql_num_rows</span>(<span $result</span>);<span //</span><span 总记录数</span> <span 8</span> <span 9</span> <span $pageSize</span> = 8; <span //</span><span 每页显示数</span> <span 10</span> <span $totalPage</span> = <span ceil</span>(<span $total</span>/<span $pageSize</span>); <span //</span><span 总页数</span> <span 11</span> <span 12</span> <span $startPage</span> = <span $page</span>*<span $pageSize</span><span ; </span><span 13</span> <span $arr</span>['total'] = <span $total</span><span ; </span><span 14</span> <span $arr</span>['pageSize'] = <span $pageSize</span><span ; </span><span 15</span> <span $arr</span>['totalPage'] = <span $totalPage</span><span ; </span><span 16</span> <span $query</span> = <span mysql_query</span>("select id,title,pic from food order by id asc limit <span $startPage</span>,<span $pageSize</span>"<span ); </span><span 17</span> <span while</span>(<span $row</span>=<span mysql_fetch_array</span>(<span $query</span><span )){ </span><span 18</span> <span $arr</span>['list'][] = <span array</span><span ( </span><span 19</span> 'id' => <span $row</span>['id'], <span 20</span> 'title' => <span $row</span>['title'], <span 21</span> 'pic' => <span $row</span>['pic'], <span 22</span> <span ); </span><span 23</span> <span } </span><span 24</span> <span //</span><span print_r($arr);</span> <span 25</span> <span echo</span> json_encode(<span $arr</span><span ); </span><span 26</span> ?>
然后就完成了,具体思路很清晰,点击页数的时候jquery获取rel中的页面值,传进去数据库获取相应数据展现在页面上。
然后还有数据库吧,我的表示这样的:
<span>1</span> <span>CREATE</span> <span>TABLE</span> <span>IF</span> <span>NOT</span> <span>EXISTS</span><span> `food` ( </span><span>2</span> `id` <span>int</span>(<span>11</span>) <span>NOT</span> <span>NULL</span><span> AUTO_INCREMENT, </span><span>3</span> `title` <span>varchar</span>(<span>100</span>) <span>NOT</span> <span>NULL</span><span>, </span><span>4</span> `pic` <span>varchar</span>(<span>255</span>) <span>NOT</span> <span>NULL</span><span>, </span><span>5</span> <span>PRIMARY</span> <span>KEY</span><span> (`id`) </span><span>6</span> ) ENGINE<span>=</span>MyISAM <span>DEFAULT</span> CHARSET<span>=</span>utf8 AUTO_INCREMENT<span>=</span><span>31</span> ;
我这边有一个demo,然后大家可以下载看看。多多指教。
http://pan.baidu.com/share/link?shareid=1518322039&uk=67299903

使用数据库存储会话的主要优势包括持久性、可扩展性和安全性。1.持久性:即使服务器重启,会话数据也能保持不变。2.可扩展性:适用于分布式系统,确保会话数据在多服务器间同步。3.安全性:数据库提供加密存储,保护敏感信息。

在PHP中实现自定义会话处理可以通过实现SessionHandlerInterface接口来完成。具体步骤包括:1)创建实现SessionHandlerInterface的类,如CustomSessionHandler;2)重写接口中的方法(如open,close,read,write,destroy,gc)来定义会话数据的生命周期和存储方式;3)在PHP脚本中注册自定义会话处理器并启动会话。这样可以将数据存储在MySQL、Redis等介质中,提升性能、安全性和可扩展性。

SessionID是网络应用程序中用来跟踪用户会话状态的机制。1.它是一个随机生成的字符串,用于在用户与服务器之间的多次交互中保持用户的身份信息。2.服务器生成并通过cookie或URL参数发送给客户端,帮助在用户的多次请求中识别和关联这些请求。3.生成通常使用随机算法保证唯一性和不可预测性。4.在实际开发中,可以使用内存数据库如Redis来存储session数据,提升性能和安全性。

在无状态环境如API中管理会话可以通过使用JWT或cookies来实现。1.JWT适合无状态和可扩展性,但大数据时体积大。2.Cookies更传统且易实现,但需谨慎配置以确保安全性。

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!