JavaWeb电影院订票系统(支持在线选座)

2023-05-16

今天,博主开发一款电影院购票系统,说到影院购票系统,其与普通的商城系统的差别主要就是要进行座位选择,保证观众选取完该座位后会在订单在显示相应的信息,同时,选过的座位不能再选。
博主考虑一下,觉得座位选座可以通过JavaScript与JQuery等前端编程语言来实现,博主的前端技术不算太好,只能借用网上的js源码了。

展示视频

影院运行视频

在这里插入图片描述

功能点与技术点

前台:
用户注册登录,身份证实名(调用身份证识别接口,完成实名注册) 我的订单,收藏夹,影片评论,影片展示
后台:
影片管理(影片上传,下架) 影片类别管理,影片销售额统计(销售视图),订单管理,用户管理 ,评论管理(发送邮件致谢)

数据采用ajax请求,json回传。

前端界面

在这里插入图片描述
那么有了前端的选座代码后,我们要做的便是将数据的选座信息绑定到页面上,即让这些亦轩的座位显示为不可选。这是博主的代码,数据绑定后并完成购票,使用的是AJAX请求。

<script type="text/javascript">
            var price =0;
            price=$("#price").text()*1;
            
			var sc="";
			var $cart='';
			var unseat="";
            $(document).ready(function() {
				$cart = $('#seats_chose'), //座位区
                        $tickects_num = $('#tickects_num'), //票数
                        $total_price = $('#total_price'); //票价总额

                 sc = $('#seat_area').seatCharts({
                    map: [//座位结构图 c 代表座位; 下划线 "_" 代表过道
                        'cccccccccc',
                        'cccccccccc',
                        '__________',
                        'cccccccc__',
                        'cccccccccc',
                        'cccccccccc',
                        'cccccccccc',
                        'cccccccccc',
                        'cccccccccc',
                        'cc__cc__cc'
                    ],
                    naming: {//设置行列等信息
                        top: false, //不显示顶部横坐标(行) 
                        getLabel: function(character, row, column) { //返回座位信息 
                            return column;
                        }
                    },
                    legend: {//定义图例
                        node: $('#legend'),
                        items: [
                            ['c', 'available', '可选座'],
                            ['c', 'unavailable', '已售出']
                        ]
                    },
                    click: function() {
                        if (this.status() == 'available') { //若为可选座状态,添加座位
                            $('<li>' + (this.settings.row + 1) + '排' + this.settings.label + '座  </li>')
                                    .attr('id', 'cart-item-' + this.settings.id)
                                    .data('seatId', this.settings.id)
                                    .appendTo($cart);
                        	unseat=unseat+','+(this.settings.row + 1) + '_' + this.settings.label;

                            $tickects_num.text(sc.find('selected').length + 1); //统计选票数量
                            $total_price.text(getTotalPrice(sc) + price);//计算票价总金额

                            return 'selected';
                        } else if (this.status() == 'selected') { //若为选中状态

                            $tickects_num.text(sc.find('selected').length - 1);//更新票数量
                            $total_price.text(getTotalPrice(sc) - price);//更新票价总金额
                            $('#cart-item-' + this.settings.id).remove();//删除已预订座位

                            return 'available';
                        } else if (this.status() == 'unavailable') { //若为已售出状态
                            return 'unavailable';
                        } else {
                            return this.style();
                        }
                    }
                });
                //设置已售出的座位
                var a=document.getElementById("info").value;
                var ar=a.split(",");//里面不要加单引号,会变成["'1_3','2_5'"]
                unseat=ar;
               sc.get(ar).status('unavailable');//这是将座位设置为已用
                

            });

            function getTotalPrice(sc) { //计算票价总额
                var total = 0;
                sc.find('selected').each(function() {
                    total += price;
                });
                return total;
            }
			$("#btn1").click(function(sc){
				var money=$("#total_price").text();
				
                //alert("票价:"+money);
				var seat=$("#seats_chose").text();
				
				var account=document.getElementById("account").value;
				var userid=document.getElementById("userid").value;
				var adress=document.getElementById("adress").value;
				var mid=document.getElementById("mid").value;
				var btime=document.getElementById("btime").value;
				account=account-money;
				if(userid!=0){
				if(account>=0){
					if(adress!=0){
						$.ajax({
							type:"post",
							url:"${basePath}/OrderServlet?action=buymovice&&account="+account+"&seat="+seat+"&unseat="+unseat+"&mid="+mid+"&money="+money,
							success:function(data){
								//调用填充数据的函数
								alert("下单成功!");
							},
							error:function(){
								alert("请求错误");
							}
							
						});
					
					}else{
						alert("购票前须先进行实名!");
					}
				}
				else{
					alert("余额不足!");
				}}
				else{
					alert("尚未登陆!");
				}
			});
        </script>

如此一来,购票选座功能便实现了。

下面是项目的运行展示截图:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
码字不易,给个赞呗

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaWeb电影院订票系统(支持在线选座) 的相关文章

  • PHP实现自定义if条件、动态if条件判断(店铺会员卡等级规则判断的实现)

    首先抛出一个问题 xff1a span class token comment 前端输入的字符 span span class token variable logic span span class token operator 61 s
  • Mac地址、IP、子网掩码、网关、DNS

    MAC xff08 Media Access Control 介质访问控制 xff09 MAC地址是烧录在Network Interface Card 网卡 NIC 里的 MAC地址 也叫物理地址或硬件地址 是由48比特长 xff0c 16
  • CSRF修复——看完的你多了一把刷子

    近期项目对漏洞修复这一块比较看重 xff0c 例举下CSRF的修复之路吧 提到我就心累 1 CSRF是什么 CSRF xff08 Cross Site Request Forgery 跨站域请求伪造 xff09 是一种网络的攻击方式 xff
  • 数据结构课设

    项目1 xff1a 中国计算机设计大赛赛事统计 设计目标 xff1a 1 xff0c 能统计各学校的总分 2 xff0c 能按照学校编号或者名称 xff0c 将学校的总分或者各项目的总分排序输出 3 xff0c 能够按照编号查询学校某个项目
  • idea往项目中添加jar包

    1 xff0c 项目中没有lib包则自行创建 xff0c 名字设为lib xff08 项目中已经有lib包则直接进入2 xff09 xff1b 2 xff0c 将下载好的jar包拖入刚刚创建好的lib文件包中 xff1b 3 xff0c 右
  • Windows10如何向GitHub上传文件夹?

    1 首先创建GitHub的账号 xff0c 建立好你的仓库 2 找到你的仓库 xff0c 点击 code 后点击 HTTPS 并对内容进行复制 xff0c 如下图所示 xff1a 3 下载安装git xff0c 官网下载后一直next傻瓜安
  • centos7安装tomcat9

    一 首先需要安装好jdk 1 通过yum search java grep jdk查看支持的jdk软件包 2 yum install y java 1 8 0 openjdk 安装你想要的jdk软件包 3 查看是否安装成功java vers
  • Linux的优点和缺点

    Linux的优点 xff1a 1 稳定的系统 xff1a Linux是基于Unix发展出来的操作系统 xff0c 继承了Unix的稳定并有效率的特点 经常听到安装Linux的主机连续运作一年以上而不当机 不必关机是稀松平常的事 2 免费 x
  • Effective C++条款(第三版-侯杰译)

    条款一 xff1a 视C 43 43 为一个语言联邦 C 43 43 高效编程守则视情况而变化 xff0c 取决于你使用的C 43 43 哪一部分 条款二 xff1a 尽量以const xff0c enum xff0c inline替换 d
  • obj * volatile *my_free_list ;

    今天看STL源码分析看到的一句话 xff1a obj volatile my free list 首先我们要明白一件事 xff1a volatile是一个特征修饰符 xff08 type specifier xff09 volatile的作
  • Linux下搭建路由器

    客户端1 xff1a CentOS6 9 客户端2 xff1a CentOS7 3 路由器 xff1a router1 xff08 CentOS7 3 xff09 router2 xff08 CentOS7 3 xff09 r router
  • linux 搭建FTP服务器

    FTP用于计算机之间通过网络进行文件传输 你可以通过FTP在计算机账户间进行文件传输 xff0c 也可以在账户和桌面计算机之间传输文件 xff0c 或者访问在线软件归档 服务器条件 xff1a 基于VM的Ubuntu虚拟机20 04 1 保
  • FileHandler文件处理

    FileHandler文件处理 xff0c 实行文件从临时目录保存到正式目录 生成图片对象的缩略图 获取文件信息等功能 实例 xff1a 实现用户头像图片的保存 xff0c 并生成对象的缩略图 1 创建filehandler xml文件 在
  • Error: 0x8007019e

    安装和启动 旧版本的 win10 需要在 控制面板 gt 程序 gt 启用或关闭Windows功能 勾选 适用于Linux的Windows子系统 Beta 由于现在这个功能已经不再是 beta 功能了 xff0c 只要保证你的 window
  • docker下gitlab安装配置使用

    docker 安装gitlab以及使用 一 安装及配置 1 gitlab镜像拉取 gitlab ce为稳定版本 xff0c 后面不填写版本则默认pull最新latest版本 docker pull gitlab gitlab ce 拉取镜像
  • 解决VMware上字特别小的问题

    在安装了vmware tools后 xff0c 屏幕虽然变大了 xff0c 但是字还是特别小 解决方法如下 xff1a 1 找到虚拟机上设置按钮 2 选择设备按钮 3 调整分辨率 xff08 我的电脑一开始默认的分辨率特别高 xff0c 我
  • 每天修Linux系统---关于libjpeg.so.8 && 简单的安装opencv的方法

    问题如图 xff1a 为了修这个东西我真的是费尽心力 xff0c 天天念叨 xff0c 就差卸载opencv重装 重装之前试了一下结果世界都亮了哥 xff01 xff01 xff01 解决方案如图 xff1a cv2没有报错了 xff01
  • Ubuntu22.04应用程序启动时闪退

    Ubuntu22 04启动应用程序时闪退 xff0c 添加程序启动时参数解决 今天尝试在ubuntu安装QQ音乐 xff0c 安装后启动时弹出一下就闪退了 命令行启动程序 xff0c 报错 xff1a FATAL gpu data mana
  • CNN 不变性

    CNN的平移不变性 xff1a 由于全局共享权值和pool操作 xff08 明显的特征被保存下来 xff0c 与位置没有关系 xff1f xff09 CNN的尺度不变性 xff1a 没有或者说具有一定的不变性 xff08 尺度变化不大 xf
  • Docker(四):网络管理

    Docker网络管理 一 xff1a Docker网络介绍1 1 none 网络1 2 host 网络1 3 Container1 4 Bridge 二 xff1a 端口映射 一 xff1a Docker网络介绍 Docker使用了Linu

随机推荐