上一篇我们说了使用单选框点菜,本人前思后想略有不妥啊,总感觉剁完手的你们应该补一下,光吃一道菜是不够的,对不对?所以我们还是来说一下正常的餐厅的点菜模式多选checkbox吧,毕竟剁手党需要补补,餐厅也需要赚钱啊,哈哈哈~我就快要编不下去了,噗噗噗~拉我起来,我还能继续胡说八道,诱导大家一起入编程的坑……
在说复选框点菜之前我们先来说一下,PHP中的时间函数,date()。大家可能说,这还有啥好说的,那我不管了,就要说就要说就要说,并且立刻马上开说:
在PHP中,date的参数,需要多加注意一下,其实也很简单,区分一下大小写代表的意思即可:
年:Y四位数的年份,y两位数的年份
月:M英文简写三字母的月份,m有前导零的月份,n没有前导零的月份
日:
月份中的第几天:d有前导零,j没有前导零
星期中的第几天:D英文简写三字母
时:
24制:H有前导零,G无前导零
12制:h有前导零,g无前导零
分:i有前导零的分钟
秒:s有前导零的秒钟
周:W获取的是年中的第几周,w获取的是当前是周几
对于时间date这个函数,我们最常用的是:
echo date("Y-m-d H:i:s");//2017-11-11 11:11:25(我的妈呀,好多1啊,我这个点选的不好啊)
最后关于时间date需要说的是,这样设置时间是有时区差的,所以需要改变时区,去XAMPP文件夹里去找etc文件夹里的php.ini文件,修改即可
好了,说完时间函数date()了,我可以放心的说选多个菜,并且存储到后态文件了,开始选菜。
选多个菜跟选单个菜差不多,稍稍有点差别而已,类似的情况,不再做详细赘述哦,看不明白的可以去上一篇博文 实现详解 里面去看详解,开始上代码~
<?php
$menu = array("0"=>array("红烧肉","25"),"1"=>array("烤鸡","28"),"2"=>array("鲍鱼","98"),"3"=>array("青菜汤","15"),"4"=>array("炖猪蹄","30"),"5"=>array("红烧排骨","35"));
$caiArr = $_POST["key"];
if(!empty($_POST)){
$caiA = array();//菜品
$num = array();//数量
$price = array();//价格
foreach($caiArr as $k => $v){
//菜品
$Selected = $menu[$v][0];
$caiA[] = $Selected;
//数量
$amount_key = "amount_".$_POST['key'][$k];
$amount = $_POST[$amount_key];
$num[] = $amount;
//价格
$pri = $menu[$v][1];
$price[] = $pri;
}
$str = implode("、",$caiA);//菜品
$str1 = implode("、",$num);//数量
$zj = 0;//总价
foreach($price as $key => $val){
$zj += $price[$key]*$num[$key];
};
//周一到周五都有促销活动
//判读当前是周几
$da = date("w");
switch($da){
case 1:
$zk = 0.1;
break;
case 2:
$zk = 0.2;
break;
case 3:
$zk = 0.3;
break;
case 4:
$zk = 0.4;
break;
case 5:
$zk = 0.5;
break;
default:
$zk = 0.6;
}
$total = $zj*$zk;//打完折扣的总价
$fp = fopen("menu2.txt","a+");
$line = "客人选的菜有$str,分别是$str1 份,折后为$total 元"."\n";
fwrite($fp,$line);
fclose($fp);
}
?>
<form action="" method="post">
<?php
foreach($menu as $key => $val){
?>
<input type="checkbox" name="key[]" value="<?=$key?>" /><?=$val[0]?><?=$val[1]?>元 订餐份数<input type="text" name="amount_<?=$key?>" /><br/>
<?php
}
?>
<br/>
<input type="submit" value="订餐"/>
</form>
以上代码,最最需要注意的点就是radio与checkbox提交数据的区别,单选框提交的是单个数据,复选框可以同时提交多个数据,所以我们需要在复选框的name属性值上加上方括号[ ],以表示我们上传的是一个数组,并不是单个的元素。
好嘞,看看点菜界面吧~
看看,我们都点了哪些菜呢~
时间过得好快啊,转眼一上午就过去了,到了该吃午饭的时候咯,收拾收拾吃饭去喽,啦啦啦~小伙们午餐愉快!!!