php+mysql+Apache購物車功能實現之分頁查詢

購物車基本功能:商品的添加、修改、刪除、結算、和分頁查詢

文件的基本組織形式:shopcar_display.php(購物車裏面的商品展示頁面 具有分頁功能)

                                     shopcar_ajax.js(提交當前頁數)

                                     shopcar_session.php(生成當前頁面的購物車裏面的記錄session數據)


分頁細節展示

shopcar_display.php

<body>
<?php
include("index_top_nav.php");
?>
<div class = "wrap">
<nav class="navbar navbar-default">
<p class="navbar-text p1">商品</p>
<p class="navbar-text p2">價格</p>
<p class="navbar-text p3">數量</p>
<p class="navbar-text p4">總計</p>
</nav>
<?php
$connID = mysqli_connect("127.0.0.1","root","","shop");
mysqli_query($connID,"set names utf8");
$query = "SELECT `name`, `price`, `number`, `total` FROM `".$_SESSION['name']."_car`";
$result = mysqli_query($connID,$query);
//獲取總共有多少條數據
$count  = mysqli_num_rows($result);
//先計算一共有多少頁 每頁六個數據
if($count%6 ==0){
    $pageNum = $count/6;
}else{
    $pageNum = intval($count/6)+1;
}
$index=0;
foreach($_SESSION['result'] as $key => $value){?>
    <div class="panel panel-default">
    <div class = " img"><img src="image/20191001.jpg" alt="..."/></div>
    <div class = "panel-body id"><?php echo $value[0];?></div>	
    <div class = "panel-body id"><?php echo $value[1];?></div>	
    <div class = "panel-body id"><?php echo $value[2];?></div>	
    <div class = "panel-body id"><?php echo $value[3];?></div>	
</div>
<?php
}
?>
<nav aria-label="Page navigation">
  <ul class="pagination">
    <li>
      <a href="#" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
<?php
$index  = 1;
while($pageNum > 0){?>
   <li class = "Liindex"><a href="#"><?php echo $index?></a></li> 
<?php
$index ++;
$pageNum --;
}
?>
    <li>
      <a href="#" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
  </ul>
</nav>
</div>
<script src = "js/shopcar_ajax.js"></script>
</body>

基本思路解析:首先訪問該用戶的購物車表文件,獲取一共有多少條數據,然後計算需要分幾頁,最後生成分頁按鈕導航,當前頁面訪問的$_SESSION['result']數據是在shopcar_session.php中生成的。

分頁具體實現(shopcar_ajax.js + shopcar_session.php)

GetCurrenIndex(1);
var allLi = document.getElementsByClassName("liindex");
for(var index = 0;index<allLi.length;index++){
    allLi[index].addEventListener("click",function(){
        GetCurrenIndex(this.firstElementChild.innerHTML);
        location.reload();
        console.log(this.firstElementChild.innerHTML);

    })
}
function GetCurrenIndex(current){
    var xmlHttp = new XMLHttpRequest();
    url = "shopcar_session.php?current="+current;
    xmlHttp.open("get",url,true);
    xmlHttp.send(null);
    xmlHttp.onreadystatechange = function(){
        if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
            console.log(xmlHttp.responseURL);
        }
    }
}

js裏面提交用戶當前是要訪問第幾頁數據,給每一個分頁按鈕綁定單擊事件和ajax提交數據.

<?php
session_start();
$_SESSION['result'] = array();
include("conn/conn.php");
$query = "SELECT `name`, `price`, `number`, `total` FROM `".$_SESSION['name']."_car` limit ".strval((intval($_GET["current"])-1)*6).",6";
$result = mysqli_query($connID,$query);
$index = 0;
while($arr = mysqli_fetch_array($result,MYSQLI_NUM)){
    $_SESSION['result'][$index] = $arr;
    $index ++;
}
?>

獲取用戶提交來的ajax當前頁面,然後計算需要查詢數據限制在那幾條。其中這裏學習到的新的查詢限定關鍵字limit,然後生成session數據,最後在shopcar_display中訪問session數據.顯示分頁和展示的功能.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章