close
文章出處

點餐功能和購物差不多,把選中的商品存到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>工&nbsp;&nbsp; 號:</b>&nbsp;<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>工&nbsp;&nbsp;&nbsp; 號:</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
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()