用js写一个电影院选座的逻辑
时间: 2023-05-23 18:05:20 浏览: 463
原生JS经典小项目-电影选座
A:好的,以下是我使用 JavaScript 编写的简单电影院选座逻辑。
首先,我们需要定义一个二维数组来表示座位排列情况,其中 0 表示座位为空,1 表示座位已被占用。代码如下:
```
var seats = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
```
然后,我们需要为每个座位绑定点击事件,当用户点击未被占用的座位时,将其状态改为已被占用,并给予用户反馈。代码如下:
```
var seatsContainer = document.getElementById('seats-container'); // 座位容器
for (var i = 0; i < seats.length; i++) {
var row = document.createElement('div'); // 创建行
row.className = 'row';
for (var j = 0; j < seats[i].length; j++) {
var seat = document.createElement('div'); // 创建座位
seat.className = 'seat';
seat.dataset.row = i;
seat.dataset.col = j;
if (seats[i][j] === 1) {
seat.classList.add('occupied'); // 座位已被占用
} else {
seat.addEventListener('click', function(event) {
event.target.classList.add('selected'); // 给予用户反馈
seats[event.target.dataset.row][event.target.dataset.col] = 1; // 修改座位状态
});
}
row.appendChild(seat); // 将座位添加到行中
}
seatsContainer.appendChild(row); // 将行添加到容器中
}
```
最后,我们需要处理用户的订单信息并将其提交至后端服务器,确保座位预订成功。代码如下:
```
var submitButton = document.getElementById('submit-button'); // 提交按钮
submitButton.addEventListener('click', function() {
var selectedSeats = document.querySelectorAll('.selected'); // 获取被选中的座位
if (selectedSeats.length === 0) {
alert('请至少选择一个座位!'); // 提示用户选择座位
return;
}
var order = {
seats: [] // 订单信息
};
for (var i = 0; i < selectedSeats.length; i++) {
var row = parseInt(selectedSeats[i].dataset.row) + 1; // 座位所在行
var col = parseInt(selectedSeats[i].dataset.col) + 1; // 座位所在列
order.seats.push({row: row, col: col});
}
// 将订单信息提交至后端服务器
axios.post('/api/order', order)
.then(function(response) {
if (response.data.success) {
alert('座位预订成功!');
location.reload(); // 刷新页面
} else {
alert('座位预订失败,请重试!');
}
})
.catch(function(error) {
alert('网络错误,请稍后再试!');
});
});
```
以上便是我的电影院选座逻辑的简单实现,希望对你有所帮助!
阅读全文