制作点餐系统中的点餐功能

点餐功能和购物差不多,把选中的商品存到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='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了!

因为要连接数据库,所以在尝试前先把表建好

原文地址:https://www.cnblogs.com/qishuang/p/6409949.html