外卖点菜代码分析

提交url:http://192.168.1.126/store.php
post提交
参数
ctl:view
act:ajax_set_menu_nums
id:40
num:1

module:app/Lib/store/viewModule.class.php
action:ajax_set_menu_nums


public function ajax_set_menu_nums()
{
$return = array();

//获取菜单id,数量
$id = intval($_REQUEST['id']);
$num = intval($_REQUEST['num']);

//把点菜信息保存在session中
es_session::set("cho_nums_".$id,$num);

//变量输出到模板,并返回
$GLOBALS['tmpl']->assign("id",$id);
$GLOBALS['tmpl']->assign("nums",$num);
$return['html'] = $GLOBALS['tmpl']->fetch("inc/store/res_cho_nums.html");
ajax_return($return);
}


返回的模板内容,显示在下图红框内

{if $nums gt 0}
<span class="res_cho_nums">
<a href="javascript:" class="res_cho_desc" title="减少一份" data-id="{$id}"></a>
<input class="res_cho_input" value="{$nums}" data-id="{$id}" title="修改选菜数量">
<a href="javascript:" class="res_cho_asc" title="增加一份" data-id="{$id}"></a>
</span>
{else}
<a href="javascript:void(0)" class="res_cho_btn" title="点菜" data-id="{$id}">点菜</a>
{/if}
<script type="text/javascript">

jQuery(function(){
//绑定点菜按钮
$(".res_cho_btn").click(function(){
var id=$(this).attr("data-id");
var obj = $(this).parent();
set_ctmenu_nums(id,1,function(result){
obj.parent().parent().addClass("res_cho_list_on");
obj.html(result.html);
});
});

//绑定"-"按钮
$(".res_cho_desc").click(function(){
var id=$(this).attr("data-id");
var obj = $(this).parent().parent();
var num = parseInt($(this).parent().find(".res_cho_input").val())-1;
set_ctmenu_nums(id,num,function(result){
if(num >0){
if(!obj.parent().parent().hasClass("res_cho_list_on"))
obj.parent().parent().addClass("res_cho_list_on");
}
else{
obj.parent().parent().removeClass("res_cho_list_on");
}
obj.html(result.html);
});
});

//绑定"+"按钮
$(".res_cho_asc").click(function(){
var id=$(this).attr("data-id");
var obj = $(this).parent().parent();
var num = parseInt($(this).parent().find(".res_cho_input").val())+1;
set_ctmenu_nums(id,num,function(result){
if(num >0){
if(!obj.parent().parent().hasClass("res_cho_list_on"))
obj.parent().parent().addClass("res_cho_list_on");
}
else{
obj.parent().parent().removeClass("res_cho_list_on");
}
obj.html(result.html);
});
});

//绑定输入输入框输入
$(".res_cho_input").blur(function(){
var id=$(this).attr("data-id");
var obj=$(this).parent().parent();
var num=parseInt($(this).val());
set_ctmenu_nums(id,num,function(result){
if(num >0){
if(!obj.parent().parent().hasClass("res_cho_list_on"))
obj.parent().parent().addClass("res_cho_list_on");
}
else{
obj.parent().parent().removeClass("res_cho_list_on");
}
obj.html(result.html);
});
});
});
</script>



[img]http://dl2.iteye.com/upload/attachment/0100/1730/3ccb0831-ccf1-32f5-97ef-76d7a730087e.png[/img]

右下角点菜购物车分析
http://192.168.1.126/store.php
get请求
参数ctl=view&act=ajax_get_menu_float_all&id=9&is_morder=1&takeaway=1&_=1408063555077
module:app/Lib/store/viewModule.class.php
action:ajax_get_menu_float_all


public function ajax_get_menu_float_all()
{
//获取商户id
if(intval($_REQUEST['id'])==0)
exit();

//获取餐厅名称
$store_info = $GLOBALS['db']->getRowCached("select name from ".DB_PREFIX."supplier_location where id = ".intval($_REQUEST['id'])." and is_effect = 1");
if(!$store_info)
exit();

//获取该餐厅的所有菜单
$templist = $GLOBALS['db']->getAllCached("SELECT id,name,price,is_special FROM ".DB_PREFIX."supplier_location_menu WHERE supplier_location_id=".intval($_REQUEST['id'])." ORDER BY id DESC");


$list = array();
//特色菜数量
$special_num = 0;
//普通菜数量
$normal_num = 0;
//总价格
$all_price = 0;

foreach($templist as $k=>$v) {
//根据菜单id去session中查询
$nums = es_session::get("cho_nums_".$v['id']);

//如果数量大于0,则用户已经点过该菜
if(intval($nums) > 0) {
$templist[$k]['nums'] = $nums;
if($v['is_special']) {
//特色菜
$list['special'][]=$templist[$k];
$special_num +=1;
} else {
//普通菜
$list['normal'][]=$templist[$k];
$normal_num +=1;
}

//计算价格
$all_price +=$v['price']*$nums;
}
}

//变量输出到模板
$GLOBALS['tmpl']->assign("store_info",$store_info);
$GLOBALS['tmpl']->assign("special_num",$special_num);
$GLOBALS['tmpl']->assign("normal_num",$normal_num);
$GLOBALS['tmpl']->assign("is_morder",intval($_REQUEST['is_morder']));
$GLOBALS['tmpl']->assign("takeaway",intval($_REQUEST['takeaway']));
$GLOBALS['tmpl']->assign("all_price",$all_price);
$GLOBALS['tmpl']->assign("list",$list);
$GLOBALS['tmpl']->assign("sid",intval($_REQUEST['id']));
$GLOBALS['tmpl']->display("inc/store/float_ctmenu.html");
}


[img]http://dl2.iteye.com/upload/attachment/0100/2213/5339592a-9b29-304a-8398-c200c2a7c370.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值