
文章出處
點餐功能和購物差不多,把選中的商品存到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了!
因為要連接數據庫,所以在嘗試前先把表建好