HEX
Server: Apache/2.4.37 (CentOS Stream) OpenSSL/1.1.1k
System: Linux ysnet.com.tw 4.18.0-553.5.1.el8.x86_64 #1 SMP Tue May 21 05:46:01 UTC 2024 x86_64
User: test (521)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /var/www/test/Installationlist/oldphp/fill_preview_data.js
// ✅ 將 preview.php 的資料填入行為封裝成可重用函式
        function fillPreviewFromSession(container) {
            const q = (id) => container.querySelector(`#${id}`);

            // 基本欄位
            const fields = {
                user_id_display: "user_id_display",
                member_display: "member_display",
                applicant_name: "applicant_name",
                applicant_homenumber: "applicant_homenumber",
                applicant_usernumber: "applicant_usernumber",
                applicant_phone: "applicant_phone",
                applicant_email: "applicant_email",
                speed: "speed",
                pppoeid: "pppoeid",
                pppoepw: "pppoepw",
                fistcount: "fistcount",
                basenumber: "basenumber"
            };
            for (let id in fields) {
                let val = sessionStorage.getItem("sessionsave_" + fields[id]) || '';
                if (q(id)) q(id).innerText = val;
            }

            // 裝機地址
            const memberaddress = sessionStorage.getItem("sessionsave_memberaddress") || '';
            const useraddress = sessionStorage.getItem("sessionsave_useraddress") || '';
            const addressDisplay = [memberaddress, useraddress].filter(Boolean).join(' ');
            if (q("install_address")) q("install_address").textContent = addressDisplay;

            // 設備資訊
            const displayMultiBox = (id, prefix) => {
                const box = q(id);
                if (!box) return;
                box.innerHTML = '';
                let found = false;
                for (let i = 0; i < 20; i++) {
                    const val = sessionStorage.getItem(`sessionsave_${prefix}[${i}]`);
                    if (!val) continue;
                    if (val === '無') {
                        box.innerHTML = '<div>無</div>';
                        return;
                    }
                    found = true;
                    const div = document.createElement('div');
                    div.textContent = val;
                    box.appendChild(div);
                }
                if (!found) box.innerHTML = '';
            };

            const displayUseBox = (id) => {
                const box = q(id);
                if (!box) return;
                box.innerHTML = '';
                let found = false;
                for (let i = 0; i < 20; i++) {
                    const name = sessionStorage.getItem(`sessionsave_use_box[${i}]`);
                    if (!name) continue;
                    if (name === '無') {
                        box.innerHTML = '<div>無</div>';
                        return;
                    }
                    const sn = sessionStorage.getItem(`sessionsave_use_sn[${i}]`) || '';
                    const dp = sessionStorage.getItem(`sessionsave_use_dp[${i}]`) || '';

                    const wrapper = document.createElement('div');
                    wrapper.style.marginBottom = '8px';
                    const nameLine = document.createElement('div');
                    nameLine.textContent = name;
                    wrapper.appendChild(nameLine);
                    if (sn) {
                        const snLine = document.createElement('div');
                        snLine.textContent = `料號:${sn}`;
                        wrapper.appendChild(snLine);
                    }
                    if (dp) {
                        const dpLine = document.createElement('div');
                        dpLine.innerHTML = `押金:<span style="color:red; font-weight:bold;">${dp}</span>`;
                        wrapper.appendChild(dpLine);
                    }
                    box.appendChild(wrapper);
                    found = true;
                }
                if (!found) box.innerHTML = '';
            };

            displayMultiBox('info_box', 'info_box');
            displayMultiBox('router_box', 'Router_box');
            displayUseBox('use_box');

            // 收費明細
            const feeList = q('fee-list');
            let total = 0;
            if (feeList) {
                feeList.innerHTML = '';
                const feeMain = sessionStorage.getItem('sessionsave_fee_select');
                const netFee = sessionStorage.getItem('sessionsave_net_fee_only');
                if (feeMain && netFee) {
                    let feeValue = isNaN(netFee) ? 0 : parseInt(netFee);
                    feeList.innerHTML += `<tr><td>網路費用</td><td>${feeMain}</td><td>${netFee}</td><td>${netFee === '信用卡扣款' ? '定期信用卡方案,無需繳費' : ''}</td></tr>`;
                    if (!isNaN(feeValue)) total += feeValue;
                }
                try {
                    const indexes = JSON.parse(sessionStorage.getItem('sessionsave_price_indexes')) || [];
                    indexes.forEach(idx => {
                        const type = sessionStorage.getItem(`sessionsave_price_box[${idx}]`) || '';
                        const num = sessionStorage.getItem(`sessionsave_other_fee_number[${idx}]`) || '';
                        const amt = sessionStorage.getItem(`sessionsave_other_fee_amount[${idx}]`) || '';
                        if (!type && !amt) return;
						feeList.innerHTML += `<tr><td>${type}</td><td></td><td>${amt}</td><td>${num}</td></tr>`;
                        if (!isNaN(amt)) total += parseInt(amt);
                    });
                } catch {}
                const totalTd = q('fee-total');
                if (totalTd) totalTd.textContent = total.toString();
            }

            // 日期明細
            const dateMap = {
                'install-date': 'install_date',
                'rental-start-date': 'rental_start_date',
                'rental-end-date': 'rental_end_date',
                'real-end-date': 'real_end_date'
            };
            for (const id in dateMap) {
                const val = sessionStorage.getItem('sessionsave_' + dateMap[id]) || '';
                if (q(id)) q(id).textContent = val;
            }

            // 贈送月份明細
            const list = [];
            try {
                const indexes = JSON.parse(sessionStorage.getItem('sessionsave_given_indexes')) || [];
                indexes.forEach(idx => {
                    let reason = sessionStorage.getItem(`sessionsave_given_box[${idx}]`) || '';
                    let qty = sessionStorage.getItem(`sessionsave_give_qty[${idx}]`) || '';
                    let intro = sessionStorage.getItem(`sessionsave_introducer_name[${idx}]`) || '';
                    let str = `${reason}${qty ? ` ${qty}月` : ''}`;
                    if (intro) str += `(介紹人:${intro})`;
                    list.push(str);
                });
            } catch {}
            const given = q('given-months-list');
            if (given) given.textContent = list.join('\n');

        }