From 9a256cda0ac28e41abb4bb949648e8aa5d92c8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=B1=95=E9=B9=8F?= Date: Sat, 6 Dec 2025 01:28:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A5=97=E9=A4=90=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E5=90=8E=E9=BB=98=E8=AE=A4=E6=9C=8D=E5=8A=A1=E6=97=B6?= =?UTF-8?q?=E9=95=BF=E6=9C=AA=E5=B8=A6=E5=87=BA=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=9A1)=E4=BD=BF=E7=94=A8dataset=E5=B1=9E=E6=80=A7=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=A5=97=E9=A4=90=E6=95=B0=E6=8D=AE=EF=BC=9B2)?= =?UTF-8?q?=E4=BC=98=E5=8C=96selectDuration=E5=87=BD=E6=95=B0=E7=9A=84?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=9F=A5=E6=89=BE=E9=80=BB=E8=BE=91=EF=BC=9B?= =?UTF-8?q?3)=E6=B7=BB=E5=8A=A0=E8=B0=83=E8=AF=95=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BB=A5=E4=BE=BF=E6=8E=92=E6=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pending_bookings.php | 86 +++++++++++++++++++++++++++++++++----------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/pending_bookings.php b/pending_bookings.php index 207795f..ebdca77 100644 --- a/pending_bookings.php +++ b/pending_bookings.php @@ -798,17 +798,28 @@ try { // 更新套餐信息 function updatePackageInfo(submissionId) { + console.log('updatePackageInfo called with submissionId:', submissionId); + const packageSelect = document.getElementById('selected_package_' + submissionId); + if (!packageSelect) { + console.error('Package select not found for submissionId:', submissionId); + return; + } + const selectedOption = packageSelect.options[packageSelect.selectedIndex]; const packageInfoDiv = document.getElementById('packageInfo_' + submissionId); const durationInput = document.getElementById('duration_' + submissionId); const totalPriceInput = document.getElementById('total_price_' + submissionId); + console.log('Selected option:', selectedOption, 'value:', selectedOption ? selectedOption.value : 'null'); + if (selectedOption && selectedOption.value) { - const packageId = parseInt(selectedOption.value); - const duration = parseInt(selectedOption.getAttribute('data-duration')); - const price = parseFloat(selectedOption.getAttribute('data-price')); - const services = JSON.parse(selectedOption.getAttribute('data-services')); + // 直接从selectedOption的data-duration属性获取时长 + const duration = parseInt(selectedOption.dataset.duration); + const price = parseFloat(selectedOption.dataset.price); + const services = JSON.parse(selectedOption.dataset.services); + + console.log('Package data using dataset:', {duration, price}); // 更新套餐信息显示 document.getElementById('packageName_' + submissionId).textContent = selectedOption.textContent; @@ -824,9 +835,17 @@ try { servicesContainer.innerHTML = ''; } - // 更新时长和价格 - durationInput.value = duration; - totalPriceInput.value = price.toFixed(2); + // 直接更新时长输入框 + if (durationInput) { + durationInput.value = duration; + console.log('Directly updated duration input to:', duration); + } else { + console.error('Duration input not found for submissionId:', submissionId); + } + + if (totalPriceInput) { + totalPriceInput.value = price.toFixed(2); + } // 更新快捷选择按钮状态 selectDuration(submissionId, duration); @@ -839,31 +858,56 @@ try { // 快捷选择服务时长 function selectDuration(submissionId, minutes) { + console.log('selectDuration called with submissionId:', submissionId, 'minutes:', minutes); + + // 直接通过ID获取时长输入框 const durationInput = document.getElementById('duration_' + submissionId); const customDurationInput = document.getElementById('customDuration_' + submissionId); // 更新时长输入框 - durationInput.value = minutes; + if (durationInput) { + durationInput.value = minutes; + console.log('selectDuration updated duration input to:', minutes); + } else { + console.error('Duration input not found in selectDuration for submissionId:', submissionId); + } // 更新自定义时长输入框 if (customDurationInput) { customDurationInput.value = minutes; } - // 获取当前表单的所有时长按钮 - const form = document.getElementById('selected_package_' + submissionId).closest('form'); - const durationButtons = form.querySelectorAll('.duration-btn'); - - // 更新按钮选中状态 - durationButtons.forEach(btn => { - // 使用data-duration属性来检查按钮对应的时长 - const btnDuration = parseInt(btn.getAttribute('data-duration')); - if (btnDuration === minutes) { - btn.classList.add('selected'); - } else { - btn.classList.remove('selected'); + // 直接通过ID获取packageInfo元素,然后找到其父表单 + const packageInfo = document.getElementById('packageInfo_' + submissionId); + let form; + if (packageInfo) { + form = packageInfo.closest('form'); + } else { + // 如果找不到packageInfo,尝试通过packageSelect找到表单 + const packageSelect = document.getElementById('selected_package_' + submissionId); + if (packageSelect) { + form = packageSelect.closest('form'); } - }); + } + + console.log('Found form:', form); + + if (form) { + // 获取表单内的所有时长按钮 + const durationButtons = form.querySelectorAll('.duration-btn'); + console.log('Found duration buttons:', durationButtons.length); + + // 更新按钮选中状态 + durationButtons.forEach(btn => { + const btnDuration = parseInt(btn.dataset.duration); + if (btnDuration === minutes) { + btn.classList.add('selected'); + console.log('Added selected class to button with duration:', btnDuration); + } else { + btn.classList.remove('selected'); + } + }); + } } // 应用自定义时长