Điểm đầu tiên khiến Lacroix được Alonso đánh giá cao là khả năng thi đấu trong hệ thống ba trung vệ. Dưới thời Oliver Glasner, cầu thủ 26 tuổi là chốt chặn quan trọng trong sơ đồ 3-4-3 của Crystal Palace, góp công giúp đội bóng giành FA Cup và Conference League trong 2 mùa giải gần đây. Kinh nghiệm...
Xuân Son: 'Dễ đá hơn khi ĐT Việt Nam có thêm cầu thủ chất lượng'
Rodri được xác nhận đạt thỏa thuận cá nhân với Real Madrid
Bản hùng ca của nữ thần giữa lòng Bergamo
Jorge Mendes chào bán Pedro Neto cho Al Hilal
Lee Kang-in gia nhập Atletico Madrid, nhận áo số 7
Ký giả Ornstein xác nhận Arsenal nhắm Vinicius
Truyền thông Thái Lan phát sốt với Đình Bắc
Giới thiệu Thái Lan ở AFF Cup 2026: 'Voi chiến' khó vô địch
Justin Hubner chính thức vắng mặt tại ASEAN Championship 2026
Truyền thông Indonesia cảnh báo đội nhà về Đình Bắc
.gold-widget{font-family:"Segoe UI",Arial,sans-serif;background:#fff;border:1px solid #e8d9b0;border-radius:8px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.08)} .gold-widget .gold-header{background:linear-gradient(135deg,#d4af37,#b8860b);color:#fff;padding:10px 14px;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:space-between} .gold-widget .gold-header .refresh-btn{cursor:pointer;font-size:13px;opacity:.85;user-select:none} .gold-widget .gold-header .refresh-btn:hover{opacity:1} .gold-widget table{width:100%;border-collapse:collapse;font-size:13px} .gold-widget thead th{background:#fbf3e0;color:#7a5c00;padding:8px 6px;text-align:center;font-weight:600;border-bottom:2px solid #e8d9b0} .gold-widget tbody td{padding:8px 6px;text-align:center;border-bottom:1px solid #f0e6cc;color:#333} .gold-widget tbody tr:hover{background:#fffbef} .gold-widget tbody tr:last-child td{border-bottom:none} .gold-widget .gold-name{text-align:left;font-weight:600;color:#8a6d00;padding-left:10px} .gold-widget .gold-footer{padding:6px 12px;font-size:11px;color:#999;text-align:right;background:#fafafa;border-top:1px solid #eee} .gold-widget .loading{padding:20px;text-align:center;color:#999;font-size:13px} .gold-widget .na{color:#bbb}
// Đổi tên gốc từ API thành tên hiển thị gọn, dễ hiểu var goldNameMap = { "VÀNG MIẾNG SJC": "Vàng miếng SJC", "VÀNG MIẾNG VRTL": "Vàng miếng Rồng Thăng Long", "NHẪN TRÒN TRƠN": "Nhẫn tròn trơn 9999", "TRANG SỨC VÀNG RỒNG THĂNG LONG 999.9": "Vàng trang sức 999.9", "TRANG SỨC VÀNG RỒNG THĂNG LONG 99.9": "Vàng trang sức 99.9", "BẢN VÀNG ĐẮC LỘC": "Bản vàng Đắc Lộc", "QUÀ MỪNG BẢN VỊ VÀNG": "Quà mừng Bản vị vàng", "VÀNG NGUYÊN LIỆU": "Vàng nguyên liệu", "VÀNG HỆ THỐNG": "Vàng hệ thống" }; // Các loại vàng muốn ưu tiên hiển thị lên đầu, theo đúng thứ tự này var priorityOrder = [ "VÀNG MIẾNG SJC", "VÀNG MIẾNG VRTL", "NHẪN TRÒN TRƠN", "TRANG SỨC VÀNG RỒNG THĂNG LONG 999.9", "QUÀ MỪNG BẢN VỊ VÀNG" ]; function formatMoney(v) { var n = parseInt(v, 10); if (!n) return '<span class="na">-</span>'; return n.toLocaleString('vi-VN'); } function getDisplayName(ten) { for (var key in goldNameMap) { if (ten.indexOf(key) === 0) return goldNameMap[key]; } return ten.split('(')[0].trim(); } function getRawKey(ten) { for (var i = 0; i < priorityOrder.length; i++) { if (ten.indexOf(priorityOrder[i]) === 0) return i; } return 999; } async function loadGoldPrice() { var contentEl = document.getElementById('gold-content'); contentEl.innerHTML = '<div class="loading">Đang tải dữ liệu...</div>'; try { // SỬA ĐƯỜNG DẪN NÀY nếu file bạn đặt tên/vị trí khác var res = await fetch('https://nuke.huylab.pro.vn/gold-api/gold-api.php'); var data = await res.json(); if (!data || data.length === 0) { contentEl.innerHTML = 'Không lấy được dữ liệu.'; return; } // 1. Chỉ lấy dòng có chữ VÀNG, loại bỏ BẠC var goldOnly = data.filter(function(item) { return item.ten.indexOf('VÀNG') !== -1 && item.ten.indexOf('BẠC') === -1; }); // 2. Tìm mốc giờ mới nhất var latestTime = ''; goldOnly.forEach(function(item) { if (item.ngay > latestTime) latestTime = item.ngay; }); // 3. Lọc đúng mốc giờ mới nhất, bỏ dòng không có giá (mua và bán đều = 0) var finalList = goldOnly.filter(function(item) { return item.ngay === latestTime && !(parseInt(item.mua) === 0 && parseInt(item.ban) === 0); }); // 4. Sắp xếp theo thứ tự ưu tiên finalList.sort(function(a, b) { return getRawKey(a.ten) - getRawKey(b.ten); }); if (finalList.length === 0) { contentEl.innerHTML = 'Không có dữ liệu vàng hợp lệ.'; return; } var html = '<table><thead><tr><th>Loại vàng</th><th>Mua vào</th><th>Bán ra</th></tr></thead><tbody>'; finalList.forEach(function(item) { html += '<tr><td class="gold-name">' + getDisplayName(item.ten) + '</td>' + '<td>' + formatMoney(item.mua) + '</td>' + '<td>' + formatMoney(item.ban) + '</td></tr>'; }); html += '</tbody></table>'; contentEl.innerHTML = html; document.getElementById('gold-time').innerText = latestTime; } catch (e) { contentEl.innerHTML = 'Lỗi tải dữ liệu.'; } } loadGoldPrice(); setInterval(loadGoldPrice, 5 * 60 * 1000); // tự tải lại mỗi 5 phút