博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0405_hxtx_主题游常用联系人功能代码实现
阅读量:5116 次
发布时间:2019-06-13

本文共 4876 字,大约阅读时间需要 16 分钟。

文字描述:

前提:个人中心下的详情页面,旅游订单,可查看和编辑订单详情。已经由后台确认的订单是可以编辑游客信息和发票信息的。其余状态下的订单只能查看订单相关详情。

具体难点(就是我没有实现的功能):在“游客信息”这个信息块下,有两个部分,上层是常有联系人/游客信息的多选框,下层是联系人列表,动态的效果就是,上面点击勾选联系人,下面表格可以自动填充信息;当然,如果再次点击已经勾选的选项,下面原先填充的信息会被置空。预订界面会限制好成人票和儿童票,然后根据这个数量默认显示需要填入这么多人数。

上图,可能会更加清晰一点:

如上图咯。这个页面进入是根据订单编号来的。

为了实现这一效果,首先,后台要准备这些数据:1,如果游客信息已经填写好,就需要展示存到数据库的userList,2,未填写好就要通过产品订单里面的儿童和成人数量来控制默认展开的联系人数量,构成list-user

其次,jsp 页面上也准备不同的<c:foreach></c:foreach>来显示游客表格,多选框的值(跟上面类似,后台会查到相关的常用联系人)。这里我主要注意到的是它的每个文本框都动态的设置了name:name+i_;

最重要的就是js的代码了。多选框上点击的方法,和如何画表格置空一行数据的方法。

最后,show the code:

一:controller:

1 Map
map=travelOrderService.selectOrderDetailByNo(orderNo); 2 request.setAttribute("map",map); 3 4 //取得联系地址 5 List
deliveryAll = deliveryService.queryListByUserId(HXTXUtil.getUserId(request)); 6 request.setAttribute("delivery_all", deliveryAll); 7 8 String invoice_id = map.get("invoice_id")+""; 9 if(StringUtil.isNotEmpty(invoice_id)){10 request.setAttribute("delivery_info", deliveryService.selectById(invoice_id));11 }else{12 if (deliveryAll != null && deliveryAll.size() > 0) {13 request.setAttribute("delivery_info", deliveryAll.get(0));14 }15 }16 /*邮寄费*/17 //request.setAttribute("postage_money", orderService.getPostageMoney());18 19 // 常用旅客20 List
contactsList = commonOpportunityService.getCommonOpportunity(getSessionUserId());21 request.setAttribute("contactsList", contactsList);22 23 24 List list = travelPassengerInfoMapper.selectByOrderNo(orderNo);25 if(list != null && list.size()>0){26 request.setAttribute("userList", list);27 }else{28 List user = new ArrayList();29 try {30 int adult_num = 0;31 if(StringUtil.isNotEmpty(map.get("adult_num")+"")){32 adult_num = Integer.parseInt(map.get("adult_num")+"");33 }34 int child_num = 0;35 if(StringUtil.isNotEmpty(map.get("child_num")+"")) {36 child_num = Integer.parseInt(map.get("child_num") + "");37 }38 for (int i=0;i

二、jsp

<%--更多--%> 游客信息

<%--
--%>
姓名 类型 证件类型 证件号码 联系方式 操作

三。js

1   function setContactsUserInfo(obj,name,phone,cNo,id){ 2         if($(obj).prop("checked")){ 3             for(var i=1;i<20;i++){ 4                 if($("#name_" + i).length > 0 && $("#name_" + i).val() == "") { 5                     writeFrome(i,name,phone,cNo,id) 6                     return; 7                 } 8             } 9             writeFrome(1,name,phone,cNo,id)10         }else {11             var nameObj = $('input[data-cpid='+ id +']');12             $('input[id^=name]').each(function(){13                 if($(this).data('cpid') == id){14                     $(this).closest('tr').find('input:text').val('')15                 }16             })17         }18     }19 20     function writeFrome(i,name,phone,cNo,id) {21         $("#name_" + i).val(name).data('cpid', id);//22         $("#phone_" + i).val(phone);23         $("#number_" + i).val(cNo);24     }

主要是学到了prop(),onload(),closest()..

转载于:https://www.cnblogs.com/missYuLan/p/6669789.html

你可能感兴趣的文章
extern "C" 的作用
查看>>
Socket中常见的几个转换函数(htonl,htons,ntohl,ntohs,inet_addr,inet_ntoa)
查看>>
备战秋招——操作系统
查看>>
IONIC打包安卓遇到COM.ANDROID.SUPPORT:SUPPORT-V4错误的解决办法
查看>>
svn 设置文件可执行权限
查看>>
多表查询,初识pymysql模块
查看>>
Linux基础之-Bash命令优先级
查看>>
信息系统项目管理师(高级)考试大纲
查看>>
[zoj]3575 Under Attack III
查看>>
力扣——最小路径和
查看>>
Github fork其他项目的分支与主干保持同步
查看>>
Create-React-App创建antd-mobile开发环境
查看>>
【设计模式】开篇
查看>>
Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)
查看>>
Windows下搭建PHP开发环境
查看>>
2015湖南省选集训DAY5——work(BZOJ4177)
查看>>
hdu4190 简单的二分法
查看>>
Linux 解决文件删除,但并没有改变磁盘可用性
查看>>
C++ Regsvr32订购具体解释
查看>>
Android Fragment 真正彻底的解决(下一个)
查看>>