<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>注文システム</title>
<style>
body {
font-family: Arial, sans-serif;
background: linear-gradient(120deg, #f6d365, #fda085);
color: #333;
margin: 0;
padding: 20px;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
.container {
background: #fff;
padding: 20px 30px;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
max-width: 500px;
text-align: center;
}
h1 {
font-size: 24px;
color: #555;
margin-bottom: 20px;
}
.button-group button, select, button {
width: 100%;
padding: 10px;
margin-top: 10px;
font-size: 16px;
border: 1px solid #ddd;
border-radius: 5px;
background: #fda085;
color: #fff;
cursor: pointer;
transition: background 0.3s;
}
.button-group button:hover, button:hover {
background: #f6d365;
}
.suggestion {
margin-top: 20px;
padding: 20px;
background: #e3f2fd;
border-radius: 10px;
text-align: left;
}
.suggestion h2 {
font-size: 20px;
margin-bottom: 10px;
color: #444;
}
.suggestion p {
margin: 5px 0;
}
#orderList, #myOrderList {
margin-top: 20px;
padding: 20px;
background: #e3f2fd;
border-radius: 10px;
text-align: left;
max-height: 200px;
overflow-y: auto;
}
#qrcode {
margin-top: 20px;
}
</style>
</head>
<body>
<div class="container">
<h1>注文システム</h1>
<div class="button-group" id="characterButtons"></div>
<form id="orderForm">
<label for="menu">メニューを選んでください:</label>
<select id="menu" required>
<option value="マグロ寿司">マグロ寿司</option>
<option value="サーモン寿司">サーモン寿司</option>
<option value="エビ寿司">エビ寿司</option>
<option value="イクラ寿司">イクラ寿司</option>
<option value="穴子寿司">穴子寿司</option>
</select>
<button type="submit">注文</button>
</form>
<div class="suggestion">
<h2>全員の注文</h2>
<div id="orderList"></div>
<h2>あなたの注文</h2>
<div id="myOrderList"></div>
</div>
<!-- QRコード表示エリア -->
<div id="qrcode"></div>
</div>
<script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>
<script>
const characterList = ["ポポ", "ピピ", "ププ"];
let selectedCharacter = null;
// クエリからseat IDとmode取得
const params = new URLSearchParams(location.search);
const seatId = params.get("seat") || "default"; // URLから座席IDを取得
const mode = params.get("mode");
const orderKey = orders_${seatId};
let orders = JSON.parse(localStorage.getItem(orderKey)) || [];
// 会計リセットモード
if (mode === "reset") {
localStorage.removeItem(orderKey);
alert(席 ${seatId} の注文をリセットしました);
orders = [];
}
// キャラボタン作成
const characterButtonsDiv = document.getElementById("characterButtons");
characterList.forEach(character => {
const button = document.createElement("button");
button.textContent = character;
button.onclick = () => {
selectedCharacter = character;
alert(${character} を選びました);
};
characterButtonsDiv.appendChild(button);
});
const orderListElement = document.getElementById("orderList");
const myOrderListElement = document.getElementById("myOrderList");
// フォーム処理
document.getElementById("orderForm").addEventListener("submit", function(event) {
event.preventDefault();
if (!selectedCharacter) {
alert("先にキャラクターを選んでください");
return;
}
const menu = document.getElementById("menu").value;
const order = { character: selectedCharacter, menu };
orders.push(order);
localStorage.setItem(orderKey, JSON.stringify(orders));
displayOrders();
});
// 表示更新
function displayOrders() {
orderListElement.innerHTML = '';
myOrderListElement.innerHTML = '';
orders.forEach((order, index) => {
const text = #${index + 1} - ${order.character}: ${order.menu};
const p = document.createElement("p");
p.textContent = text;
orderListElement.appendChild(p);
if (order.character === selectedCharacter) {
const myP = document.createElement("p");
myP.textContent = text;
myOrderListElement.appendChild(myP);
}
});
}
// QRコード生成
const qrcode = new QRCode(document.getElementById("qrcode"), {
text: https://${location.hostname}/order.html?seat=${seatId},
width: 128,
height: 128,
});
displayOrders(); // 初回読み込み時にも表示
</script>
</body>
</html>