zoukankan      html  css  js  c++  java
  • 制作点餐系统中的点餐功能

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

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

  • 相关阅读:
    IntelliJ IDEA 常用快捷键
    solr4.5分组查询、统计功能介绍
    用于Lucene的各中文分词比较
    Lucene打分规则与Similarity模块详解
    Lucene
    tar中的参数 cvf,xvf,cvzf,zxvf的区别
    tmux 入门踩坑记录
    第一个shell脚本
    make 和 make install 的区别
    交叉编译
  • 原文地址:https://www.cnblogs.com/qishuang/p/6409949.html
Copyright © 2011-2022 走看看