點餐功能和購物差不多,把選中的商品存到session內,然后再顯示,下單
先看一下操作的樣式
首先登陸
點擊任何一個都可以彈出這個窗口,這個窗口的制作在前幾篇博客中有它的源代碼,稍作更改就可以
登陸后是這樣的
點擊幾樣餐品
可以通過刪除,來減數量
點擊下單
點餐的詳情便在另一個網頁顯示
再來看代碼,
桌號是通過數據庫遍歷顯示的,已點餐桌號為黃色,未點餐的桌號為灰色,所以數據庫內它還有個狀態
來看輸出桌號的部分代碼
然后為其添加樣式
#canzhuo{ font-size:40px; color:#FFF; font-weight:bold;width:150px; height:150px; float:left; margin:5px; background-image:url(../%E5%9B%BE%E7%89%87/QQ%E5%9B%BE%E7%89%8720170216123120.jpg); background-repeat:no-repeat; background-size:150px 150px; text-align:center; vertical-align:middle; line-height:150px;} #canzhuo1{ font-size:24px;width:150px; height:150px; float:left; margin:5px; background-color:#FC3; text-align:center; vertical-align:middle; line-height:150px;} .aa{ width:200px; height:50px; font-size:16px; float:left; margin:5px; background-color:#3F6;text-align:center; vertical-align:middle; line-height:50px} #aa:hover{ background-color:#9FC; cursor:pointer} .aa1{ width:200px; height:50px; font-size:16px; float:left; margin:5px; background-color:#999;text-align:center; vertical-align:middle; line-height:50px}
js部分
<script type="text/javascript"> //彈出登錄框 $(document).ready(function(e) { $('.aaa').click(function(){ var zh = $(this).text(); var html = "<br><form action='./diancanchuli.php' method='post'><input type='text' hidden='hidden' name='zhuohao' value='"+zh+"'/><div style='color:#000; font-size:20px'><b>工 號:</b> <input type='text' name='code' /></div><br/><div style='color:#000; font-size:20px'><b>服務員:</b><input type='text' name='mz' /></div><br/><div><input type='submit' value='登錄' /></div></form>"; var button ="<input hidden='hidden' value='確定' /><input hidden='hidden' value='取消' />"; var win = new Window({ width : 400, //寬度 height : 300, //高度 title : '點餐登錄', //標題 content : html, //內容 isMask : false, //是否遮罩 buttons : button, //按鈕 isDrag:true, //是否移動 }); }) }); $(document).ready(function(e) { $('.aaaa').click(function(){ var zh = $(this).text(); var html = "<br><form action='./diancanchulia.php' method='post'><input type='text' hidden='hidden' name='zhuohao' value='"+zh+"'/><div style='color:#000; font-size:20px'><b>工 號:</b><input type='text' name='code' /></div><br/><div style='color:#000; font-size:20px'><b>服務員:</b><input type='text' name='mz' /></div><br/><div><input style='width:50px; height:30px' type='submit' value='登錄' /></div></form>"; var button ="<input hidden='hidden' value='確定' /><input hidden='hidden' value='取消' />"; var win = new Window({ width : 400, //寬度 height : 300, //高度 title : '點餐登錄', //標題 content : html, //內容 isMask : false, //是否遮罩 buttons : button, //按鈕 isDrag:true, //是否移動 }); }) });
當然在body標簽上面還要引入jquery、已經關于彈出框的樣式以及js文件,在前幾篇博客中有講
完成后,便可以做第二個頁面,出現了兩個處理頁面
一個是diancanchuli.php,還有一個是diancanchulia.php
一個是給空桌點餐,一個是加餐,要連接的網頁不一樣,所以要分著執行
今天先講空桌點餐
處理頁面的源代碼
<?php session_start(); //用的session來儲存數據 include("DBDA.php"); $db = new DBDA(); $yh = $_POST["code"]; $mz = $_POST["mz"]; $sql = "select name from users where code = '{$yh}'"; $attr = $db->Query($sql); $name = $attr[0][0]; $zhuohao=$_POST["zhuohao"]; if(!empty($mz) && $mz==$name) //這里是密碼非空,并且密碼等于用于輸入的密碼 { $_SESSION["zh1"]=$zhuohao; $_SESSION["code"] = $yh; //session中存的用戶名等于用戶輸入的用戶名 header("location:diancan2.php"); } else { echo "登錄失敗!"; }
接下來做登陸后出現的點餐頁面
先來看點餐頁面已點餐部分的php代碼
<form action="xiadan.php" method="post"> <?php session_start(); $yh = $_SESSION["code"]; $zh1=$_SESSION["zh1"]; include("DBDA.php"); $db = new DBDA(); $sql= "select name from users where code='{$yh}'"; $attr = $db->Query($sql); echo "<h3>桌號:$zh1 服務人員:{$attr[0][0]}<h3>"; ?> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>名稱</td> <td>單價</td> <td>數量</td> <td>刪除</td> </tr> <?php //session_start(); //include ("DBDA.php "); //$db = new DBDA(); if(!empty($_SESSION["gwc"])) { $attr = $_SESSION["gwc"]; foreach($attr as $k=>$v) { $sql = "select * from caidan where code='{$v[0]}'"; //執行 $attra = $db->Query($sql); //var_dump ($attra); echo "<tr> <td>{$attra[0][2]}</td> <td>{$attra[0][0]}</td> <td>{$v[1]}</td> <td><a href='canpinshanchu.php?sy={$k}'>刪除</a></td> </tr>"; } //var_dump($_SESSION["gwc"]); } ?> </table> <input id="f1" type="submit" value="下單" /> </form>
通過session來傳,以及儲存數據
餐品也是通過遍歷數據庫來顯示出來的
引用了bootstrap的標簽頁,那里的代碼就不顯示了,主要打一下php部分的
<?php //include("DBDA.php"); //$db = new DBDA(); $sql = "select * from caidan where fcode =('1101')"; $attr = $db->Query($sql); foreach($attr as $v) { $v1 = $v[4]; $sql1 = "select isok from caidan "; $attr1 = $db->StrQuery($sql1); if($attr1=$v1) { echo "<div id='aa1'>{$v[2]}</div>"; } else { echo "<div id='aa'><a href='gwc.php?code={$v[1]}'>{$v[2]}</a></div>"; } } ?>
只展示了一種餐品,所有的餐品都在一張表中,所以使用的code和fcode來給它們分類
再來看gwc.php代碼
<?php session_start(); //將傳過來的水果加到購物車 $code = $_GET["code"]; //$_SESSION["gwc"]; //1.如果是第一次點擊加購物車,做一個二維數組扔到SESSION里 //2.如果不是第一次點擊加購物車并且該水果第一次點擊,做一個該水果的一維數組扔到SESSION的二維數組里面 //3.如果不是第一次點擊加購物車并且該水果不是第一次點擊,將SESSION數組里面該水果的數量加1 if(empty($_SESSION["gwc"])) { //1.如果是第一次點擊加購物車,做一個二維數組扔到SESSION里 $attr = array( array($code,1) ); $_SESSION["gwc"] = $attr; } else { //判斷該水果代號是否在SESSION數組里面出現 $attr = $_SESSION["gwc"]; if(PanDuan($code,$attr)) { //3.如果不是第一次點擊加購物車并且該水果不是第一次點擊,將SESSION數組里面該水果的數量加1 /*foreach($attr as $v) { if($code == $v[0]) { $v[1] = $v[1]+1; } }*/ for($i=0;$i<count($attr);$i++) { if($code == $attr[$i][0]) { $attr[$i][1]++; } } $_SESSION["gwc"]=$attr; } else { //2.如果不是第一次點擊加購物車并且該水果第一次點擊,做一個該水果的一維數組扔到SESSION的二維數組里面 $arr = array($code,1); $attr[] = $arr; $_SESSION["gwc"]=$attr; } } //判斷v是不是在arr里面出現 function PanDuan($v,$arr) { $n = 0; foreach($arr as $a) { if($v == $a[0]) { $n++; } } if($n==0) { return false; } else { return true; } } header("Location:diancan2.php");
這個處理頁面是可以通用的,第一次使用它,是做的一個購買水果網,中間的內容是不需要改的,只需要改最后一句就好了
點餐頁面的核心代碼都說了,其余的就是一些樣式,還有要引入bootstrap的一些文件,在之前的博客中也有提到
再來看處理頁面,也就是下單頁面
<?php session_start(); $yh = $_SESSION["code"]; include("DBDA.php"); $db = new DBDA(); $sqlo= "select name from users where code='{$yh}'"; $attro = $db->Query($sqlo); //session_start(); //include("DBDA.php"); //$db = new DBDA(); $zh1=$_SESSION["zh1"]; $attr = $_SESSION["gwc"]; $sqlv = "delete from yidiancan where code = '{$zh1}' "; $db->Query($sqlv,0); foreach($attr as $v) { $sql = "select * from caidan where code='{$v[0]}'"; // ////執行 $attra = $db->Query($sql); $danjia = "{$attra[0][0]}"; $fuwuyuan = "{$attro[0][0]}"; //發送人,也就是取得用戶的姓名 $shijian = date('Y-m-d H:i:s'); //當前時間 // ////造連接對象 //$db = new MySQLi("localhost","root","726","test4"); ////寫SQL語句 // $sqll = "update caidan set number=number+{$v[1]} where code='{$v[0]}' "; $db->Query($sqll,0); //執行語句 $sqli = "insert into yidiancan values('','{$zh1}','{$v[0]}','{$danjia}','{$v[1]}','{$fuwuyuan}','{$shijian}')"; $db->Query($sqli,0); $sql = "update diancan set isok='1' where name='{$zh1}'"; $db->Query($sql,0); //執行語句 } header("Location:yidiancan.php");
session開啟把所有的數據整理好,交給每一個變量
然后轉到yidiancan.php
<table width="80%" border="1" cellpadding="0" cellspacing="0" style="margin-left:10px"> <tr> <td>餐品</td> <td>單價</td> <td>數量</td> <td>服務員</td> <td>時間</td> </tr> <?php session_start(); $zh1=$_SESSION["zh1"]; include("DBDA.php"); $db = new DBDA(); $sql =" select * from yidiancan where code='$zh1'"; $attr = $db->Query($sql); foreach( $attr as $v) { $cha="select name from caidan where code='{$v[2]}'"; $cp=$db->Query($cha); echo " <tr> <td>{$cp[0][0]}</td> <td>{$v[3]}</td> <td>{$v[4]}</td> <td>{$v[5]}</td> <td>{$v[6]}</td> </tr>"; } //session_start(); //include("DBDA.php"); //$db = new DBDA(); $attr = $_SESSION["gwc"]; $sum =0; foreach($attr as $v) { $sql = "select * from caidan where code='{$v[0]}'"; // ////執行 $attra = $db->Query($sql); //var_dump($attra); $danjia = "{$attra[0][0]}"; //var_dump($v[1]); $sum=$sum+($danjia*$v[1]); } echo "<div id='s1' style='margin-left:10px'>總金額:{$sum}元</div>"; ?> </table>
樣式自己去加上就ok了!
因為要連接數據庫,所以在嘗試前先把表建好
不含病毒。www.avast.com |
留言列表