{"id":21149,"date":"2025-10-17T16:36:36","date_gmt":"2025-10-17T09:36:36","guid":{"rendered":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/?page_id=21149"},"modified":"2026-01-07T14:34:17","modified_gmt":"2026-01-07T07:34:17","slug":"tin-tuc-2025","status":"publish","type":"page","link":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/tin-tuc-2025\/","title":{"rendered":"Tin tuy\u1ec3n sinh"},"content":{"rendered":"<div class=\"wp-block-group hsu-block-cs form-tvts has-background\" style=\"background-color:#f2f7ff\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n<div class=\"form-wrapper\" id=\"FormTS\">\r\n  <div class=\"bg-form-box\">\r\n    <div class=\"icon-form center\"><\/div>\r\n    <div class=\"icon-form right\">\r\n      <img decoding=\"async\" src=\"https:\/\/www.hoasen.edu.vn\/wp-content\/themes\/ru-hsu\/assets\/faculty\/img\/icon-form-bottom-right.svg\" alt=\"\">\r\n    <\/div>\r\n    <div class=\"icon-form left\">\r\n      <img decoding=\"async\" src=\"https:\/\/www.hoasen.edu.vn\/wp-content\/themes\/ru-hsu\/assets\/faculty\/img\/icon-form-top-left.svg\" alt=\"\">\r\n    <\/div>\r\n\r\n    <div class=\"form-box\">\r\n                              <h2>\u0110\u0103ng k\u00fd nh\u1eadn t\u01b0 v\u1ea5n tuy\u1ec3n sinh<\/h2>\r\n                <form class=\"group-form-input\" action=\"https:\/\/ttsupport-api.hoasen.edu.vn\/lead\/register-major-consultation-noambassador\" method=\"POST\" id=\"DKTVTS\">\r\n                                      \r\n                    <div class=\"form-row\">\r\n                        <input id=\"HSU_HOVATEN\" maxlength=\"80\" name=\"HSU_HOVATEN\" placeholder=\"H\u1ecd v\u00e0 t\u00ean *\" size=\"20\" type=\"text\" required=\"\"\/>\r\n                         <div class=\"select-wrapper\">\r\n                          <select id=\"HSU_LOP_THPT\" name=\"HSU_LOP_THPT\" class=\"hc-form__select-data\" required>\r\n                            <option value=\"\" disabled selected hidden>L\u1edbp *<\/option>\r\n                            <option value=\"10\">L\u1edbp 10<\/option>\r\n                            <option value=\"11\">L\u1edbp 11<\/option>\r\n                            <option value=\"12\">L\u1edbp 12<\/option>\r\n                          <\/select>\r\n                         <\/div>\r\n                    <\/div>\r\n                    <div class=\"form-row\">\r\n                        <input id=\"HSU_EMAIL\" maxlength=\"40\" name=\"HSU_EMAIL\" placeholder=\"Email\" size=\"20\" type=\"email\"\/>\r\n                        <input id=\"HSU_DIENTHOAIDD\" maxlength=\"40\" name=\"HSU_DIENTHOAIDD\" placeholder=\"S\u1ed1 \u0111i\u1ec7n tho\u1ea1i *\" size=\"20\" type=\"tel\" required=\"\"\/>  \r\n                    <\/div>\r\n                    <div class=\"form-row\">\r\n                        <div class=\"hc-form__select-data custom-select\" data-select=\"HSU_MATINHTP\">\r\n                          <div class=\"select-display\">T\u1ec9nh\/ th\u00e0nh ph\u1ed1 *<\/div>\r\n                          <div class=\"select-dropdown\">\r\n                              <input type=\"text\" placeholder=\"T\u00ecm ki\u1ebfm...\" \/>\r\n                              <div class=\"options\"><\/div>\r\n                          <\/div>\r\n                          <select id=\"HSU_MATINHTP\" name=\"HSU_MATINHTP\" required hidden>\r\n                              <option value=\"\">T\u1ec9nh\/ th\u00e0nh ph\u1ed1 *<\/option>\r\n                          <\/select>\r\n                        <\/div>\r\n\r\n                        <div class=\"hc-form__select-data custom-select\" data-select=\"HSU_MATRUONG\">\r\n                        <div class=\"select-display\">T\u00ean tr\u01b0\u1eddng THPT *<\/div>\r\n                        <div class=\"select-dropdown\">\r\n                            <input type=\"text\" placeholder=\"T\u00ecm ki\u1ebfm...\" \/>\r\n                            <div class=\"options\"><\/div>\r\n                        <\/div>\r\n                        <select id=\"HSU_MATRUONG\" name=\"HSU_MATRUONG\" required hidden>\r\n                            <option value=\"\">T\u00ean tr\u01b0\u1eddng THPT *<\/option>\r\n                        <\/select>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"form-row\" style=\"grid-template-columns: 100%;\">\r\n                         <div style=\"width: 100%;\" class=\"hc-form__select-data custom-select\" data-select=\"HSU_MANGANH\">\r\n                          <div class=\"select-display\">Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o *<\/div>\r\n                          <div class=\"select-dropdown\">\r\n                              <input type=\"text\" placeholder=\"T\u00ecm ki\u1ebfm...\" \/>\r\n                              <div class=\"options\"><\/div>\r\n                          <\/div>\r\n                          <select id=\"HSU_MANGANH\" name=\"HSU_MANGANH\" required hidden>\r\n                              <option value=\"\">Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o *<\/option>\r\n                          <\/select>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <textarea id=\"HSU_THONGTIN_TV_THEM\" name=\"HSU_THONGTIN_TV_THEM\" hidden><\/textarea>\r\n                        <button  type=\"submit\" id=\"submitLead\" name=\"\u0110\u0103ng k\u00fd\" value=\"\u25b8  G\u1eedi \u0111\u0103ng k\u00fd\" class=\"custom-button-with-icon\">\r\n\t\t                      \r\n          <span>\u0110\u0103ng k\u00fd t\u01b0 v\u1ea5n<\/span>   \r\n\t\t\t\t\t<\/button>\r\n                        <p id=\"waitLead\" style=\"display: none; color: white; text-align: center;\">\u0110ang g\u1eedi...<\/p>\r\n                    \r\n                <\/form>\r\n          <\/div>\r\n    <div class=\"form-img\">\r\n      <img decoding=\"async\" src=\"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-content\/uploads\/sites\/7\/2025\/10\/form-img.png\" alt=\"Placeholder\">\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n<script>\r\nconst SHEET_ID = \"1BWyGz03WUxSudD1owIH9QBn4zyymNdJNt3rI3gGkHJ4\";\r\nconst SHEET1_NAME = \"Sheet1\";\r\nconst SHEET2_NAME = \"Sheet2\";\r\nconst SHEET3_NAME = \"Sheet3\"; \/\/ \ud83d\udc49 th\u00eam sheet ng\u00e0nh h\u1ecdc\r\n\r\nasync function fetchSheet(sheetName) {\r\n  const url = `https:\/\/docs.google.com\/spreadsheets\/d\/${SHEET_ID}\/gviz\/tq?tqx=out:json&sheet=${encodeURIComponent(sheetName)}`;\r\n  const res = await fetch(url);\r\n  const text = await res.text();\r\n  const json = JSON.parse(text.substr(47).slice(0, -2));\r\n  return json.table.rows;\r\n}\r\n\r\nasync function loadData() {\r\n  const [sheet1Rows, sheet2Rows, sheet3Rows] = await Promise.all([\r\n    fetchSheet(SHEET1_NAME),\r\n    fetchSheet(SHEET2_NAME),\r\n    fetchSheet(SHEET3_NAME)\r\n  ]);\r\n\r\n  const sheet1Data = sheet1Rows.map(row => ({\r\n    value: row.c[0]?.v?.toString().trim() || \"\",\r\n    name: row.c[1]?.v?.toString().trim() || \"\"\r\n  }));\r\n\r\n  const sheet2Data = sheet2Rows.map(row => ({\r\n    value: row.c[0]?.v?.toString().trim() || \"\",\r\n    name: row.c[1]?.v?.toString().trim() || \"\",\r\n    parent_value: row.c[2]?.v?.toString().trim() || \"\"\r\n  }));\r\n\r\n  const majorsData = sheet3Rows.map(row => ({\r\n    value: row.c[0]?.v?.toString().trim() || \"\",\r\n    name: row.c[1]?.v?.toString().trim() || \"\"\r\n  }));\r\n\r\n  \/\/ T\u1ea1o dropdown\r\n  createCustomSelect(\"HSU_MATINHTP\", sheet1Data);\r\n  createCustomSelect(\"HSU_MATRUONG\", []);\r\n  createCustomSelect(\"HSU_MANGANH\", majorsData);\r\n\r\n  \/\/ Khi \u0111\u1ed5i t\u1ec9nh -> l\u1ecdc l\u1ea1i danh s\u00e1ch tr\u01b0\u1eddng\r\n  document.getElementById(\"HSU_MATINHTP\").addEventListener(\"change\", e => {\r\n    const province = e.target.value;\r\n    const filtered = sheet2Data.filter(item => item.parent_value === province);\r\n    createCustomSelect(\"HSU_MATRUONG\", filtered);\r\n  });\r\n}\r\n\r\nfunction createCustomSelect(id, data) {\r\n  const wrapper = document.querySelector(`[data-select=\"${id}\"]`);\r\n  const hiddenSelect = wrapper.querySelector(\"select\");\r\n  const display = wrapper.querySelector(\".select-display\");\r\n  const dropdown = wrapper.querySelector(\".select-dropdown\");\r\n  const input = dropdown.querySelector(\"input\");\r\n  const optionsBox = dropdown.querySelector(\".options\");\r\n\r\n  \/\/ Reset d\u1eef li\u1ec7u c\u0169\r\n  optionsBox.innerHTML = \"\";\r\n  input.value = \"\";\r\n\r\n  \/\/ \u0110\u1eb7t placeholder m\u1eb7c \u0111\u1ecbnh\r\n  let defaultText = \"-- Ch\u1ecdn --\";\r\n  if (id === \"HSU_MATINHTP\") defaultText = \"T\u1ec9nh\/ th\u00e0nh ph\u1ed1\";\r\n  if (id === \"HSU_MATRUONG\") defaultText = \"T\u00ean tr\u01b0\u1eddng THPT *\";\r\n  if (id === \"HSU_MANGANH\") defaultText = \"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o\";\r\n\r\n  hiddenSelect.innerHTML = `<option value=\"\">${defaultText}<\/option>`;\r\n  display.textContent = defaultText;\r\n\r\n  \/\/ \ud83d\udc49 N\u1ebfu kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u\r\n  if (!data || data.length === 0) {\r\n    hiddenSelect.innerHTML = `<option value=\"\">Kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u \u0111\u1ec3 ch\u1ecdn<\/option>`;\r\n    display.textContent = \"T\u00ean tr\u01b0\u1eddng THPT *\";\r\n    hiddenSelect.setCustomValidity(\"Vui l\u00f2ng ch\u1ecdn m\u1ed9t m\u1ee5c trong danh s\u00e1ch.\");\r\n    hiddenSelect.disabled = true; \/\/ kho\u00e1 select\r\n    return;\r\n  }\r\n\r\n  \/\/ C\u00f3 d\u1eef li\u1ec7u th\u00ec k\u00edch ho\u1ea1t l\u1ea1i\r\n  hiddenSelect.disabled = false;\r\n  hiddenSelect.setCustomValidity(\"\");\r\n\r\n  \/\/ Th\u00eam option t\u1eeb d\u1eef li\u1ec7u\r\n  data.forEach(item => {\r\n    const optDiv = document.createElement(\"div\");\r\n    optDiv.className = \"select-option\";\r\n    optDiv.textContent = item.name;\r\n    optDiv.setAttribute(\"data-value\", item.value);\r\n    optionsBox.appendChild(optDiv);\r\n\r\n    const realOpt = document.createElement(\"option\");\r\n    realOpt.value = item.value;\r\n    realOpt.textContent = item.name;\r\n    hiddenSelect.appendChild(realOpt);\r\n  });\r\n\r\n  \/\/ Toggle dropdown\r\n  display.onclick = (e) => {\r\n    e.stopPropagation();\r\n    const isOpen = dropdown.style.display === \"block\";\r\n    document.querySelectorAll(\".select-dropdown\").forEach(d => d.style.display = \"none\");\r\n    dropdown.style.display = isOpen ? \"none\" : \"block\";\r\n    input.value = \"\";\r\n    filterOptions(\"\", optionsBox);\r\n    input.focus();\r\n  };\r\n\r\n  \/\/ L\u1ecdc danh s\u00e1ch\r\n  input.onkeyup = () => {\r\n    const val = input.value.toLowerCase();\r\n    filterOptions(val, optionsBox);\r\n  };\r\n\r\n  \/\/ Ch\u1ecdn option\r\n  optionsBox.onclick = e => {\r\n    if (!e.target.classList.contains(\"select-option\")) return;\r\n    const val = e.target.getAttribute(\"data-value\");\r\n    const text = e.target.textContent;\r\n    hiddenSelect.value = val;\r\n    display.textContent = text;\r\n    hiddenSelect.dispatchEvent(new Event(\"change\"));\r\n    dropdown.style.display = \"none\";\r\n  };\r\n\r\n  \/\/ \u0110\u00f3ng khi click ngo\u00e0i\r\n  document.addEventListener(\"click\", e => {\r\n    if (!wrapper.contains(e.target)) dropdown.style.display = \"none\";\r\n  });\r\n}\r\n\r\nfunction filterOptions(filterText, optionsBox) {\r\n  optionsBox.querySelectorAll(\".select-option\").forEach(opt => {\r\n    const match = opt.textContent.toLowerCase().includes(filterText);\r\n    opt.style.display = match ? \"\" : \"none\";\r\n  });\r\n}\r\n\r\n\/\/ Khi load trang\r\nloadData();\r\n\r\n<\/script>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n  const form = document.getElementById(\"DKTVTS\");\r\n  const submitBtn = document.getElementById(\"submitLead\");\r\n  const waitText = document.getElementById(\"waitLead\");\r\n\r\n  form.addEventListener(\"submit\", async function (e) {\r\n    e.preventDefault(); \/\/ ch\u1eb7n reload trang\r\n\r\n    \/\/ L\u1ea5y gi\u00e1 tr\u1ecb c\u00e1c input\/select\r\n    const hovaten = document.getElementById(\"HSU_HOVATEN\").value.trim();\r\n    const lop = document.getElementById(\"HSU_LOP_THPT\").value.trim();\r\n    const email = document.getElementById(\"HSU_EMAIL\").value.trim();\r\n    const dienthoai = document.getElementById(\"HSU_DIENTHOAIDD\").value.trim();\r\n    const tinh = document.getElementById(\"HSU_MATINHTP\").value.trim();\r\n    const truong = document.getElementById(\"HSU_MATRUONG\").value.trim();\r\n    const manganh = document.getElementById(\"HSU_MANGANH\").value.trim();\r\n\tconst tuvan = document.getElementById(\"HSU_THONGTIN_TV_THEM\").value;\r\n\r\n    \/\/ \u26a0\ufe0f Ki\u1ec3m tra r\u00e0ng bu\u1ed9c c\u00e1c tr\u01b0\u1eddng b\u1eaft bu\u1ed9c\r\n    if (!hovaten || !lop || !dienthoai || !tinh || !truong || !manganh) {\r\n      alert(\"Vui l\u00f2ng nh\u1eadp \u0111\u1ea7y \u0111\u1ee7 th\u00f4ng tin!\");\r\n      return;\r\n    }\r\n\r\n    \/\/ \u26a0\ufe0f Ki\u1ec3m tra \u0111\u1ecbnh d\u1ea1ng s\u1ed1 \u0111i\u1ec7n tho\u1ea1i (tu\u1ef3 ch\u1ecdn)\r\n    const phoneRegex = \/^(0|\\+84)[0-9]{9}$\/;\r\n    if (!phoneRegex.test(dienthoai)) {\r\n      alert(\"S\u1ed1 \u0111i\u1ec7n tho\u1ea1i kh\u00f4ng h\u1ee3p l\u1ec7. Vui l\u00f2ng ki\u1ec3m tra l\u1ea1i.\");\r\n      return;\r\n    }\r\n\r\n    \/\/ \u1ea8n n\u00fat g\u1eedi, hi\u1ec7n \"\u0110ang g\u1eedi...\"\r\n    submitBtn.style.display = \"none\";\r\n    waitText.style.display = \"block\";\r\n\r\n    \/\/ Chu\u1ea9n b\u1ecb d\u1eef li\u1ec7u g\u1eedi \u0111i\r\n    const data = {\r\n      HSU_HOVATEN: hovaten,\r\n      HSU_LOP_THPT: lop,\r\n      HSU_EMAIL: email,\r\n      HSU_DIENTHOAIDD: dienthoai,\r\n      HSU_MATINHTP: tinh,\r\n      HSU_MATRUONG: truong,\r\n      HSU_MANGANH: manganh,\r\n\t  HSU_THONGTIN_TV_THEM: tuvan\r\n    };\r\n    try {\r\n     const response = await fetch('\/wp-admin\/admin-ajax.php?action=hsu_ts_lead', {\r\n\t\t  method: 'POST',\r\n\t\t  headers: {'Content-Type': 'application\/json'},\r\n\t\t  body: JSON.stringify(data)\r\n\t\t});\r\n      const result = await response.json();\r\n      \/\/console.log(result);\r\n\r\n      submitBtn.style.display = \"block\";\r\n      waitText.style.display = \"none\";\r\n\r\n\r\n      if (result.success) {\r\n        form.reset();\r\n\t\tsetTimeout(function () {\r\n        window.location.href = \"\/tuyensinh\/thanks-you\";\r\n    \t}, 500);\r\n      } else {\r\n        alert(\"\u0110\u0103ng k\u00fd Kh\u00f4ng th\u00e0nh c\u00f4ng!\");\r\n      }\r\n\r\n    } catch (error) {\r\n      console.error(\"L\u1ed7i:\", error);\r\n      alert(\"Kh\u00f4ng th\u1ec3 k\u1ebft n\u1ed1i t\u1edbi m\u00e1y ch\u1ee7. Vui l\u00f2ng th\u1eed l\u1ea1i sau.\");\r\n      submitBtn.style.display = \"block\";\r\n      waitText.style.display = \"none\";\r\n    }\r\n  });\r\n});\r\n<\/script>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n    const form = document.querySelector(\".form-tvts\");\r\n    const formBox = form ? form.querySelector(\".bg-form-box\") : null;\r\n\r\n    if (!form || !formBox) return;\r\n\r\n    \/\/ t\u1ea1o n\u00fat close\r\n    const closeBtn = document.createElement(\"button\");\r\n    closeBtn.className = \"popup-close\";\r\n    closeBtn.innerHTML = \"&times;\";\r\n\r\n    \/\/ th\u00eam v\u00e0o bg-form-box\r\n    formBox.appendChild(closeBtn);\r\n\r\n    \/\/ t\u1ea1o overlay\r\n    const overlay = document.createElement(\"div\");\r\n    overlay.className = \"popup-overlay\";\r\n    document.body.appendChild(overlay);\r\n\r\n    let shown = sessionStorage.getItem(\"formPopupShown\");\r\n\r\n    function showPopup() {\r\n        form.classList.add(\"show-popup\");\r\n        overlay.classList.add(\"show\");\r\n        sessionStorage.setItem(\"formPopupShown\",\"true\");\r\n    }\r\n\r\n    function closePopup() {\r\n        form.classList.remove(\"show-popup\");\r\n        overlay.classList.remove(\"show\");\r\n    }\r\n\r\n    function checkScroll(){\r\n        let scrollTop = window.scrollY;\r\n        let docHeight = document.body.scrollHeight - window.innerHeight;\r\n\r\n        if (!shown && scrollTop > docHeight \/ 2) {\r\n            showPopup();\r\n            shown = true;\r\n        }\r\n    }\r\n\r\n    window.addEventListener(\"scroll\", checkScroll);\r\n\r\n    closeBtn.addEventListener(\"click\", closePopup);\r\n    overlay.addEventListener(\"click\", closePopup);\r\n\r\n});\r\n<\/script>\r\n<style>\r\n\r\n.form-tvts.show-popup{\r\n position: fixed;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    transition: all 0.4s ease;\r\n    z-index: 99999;\r\n    width: 100%;\r\n    height: 100%;\r\n    bottom: 0;\r\n    background-color: rgba(0, 0, 0, 0.6) !important;\r\n}\r\n.form-tvts.show-popup .bg-form-box{\r\n    position: relative;\r\n}\r\n.form-tvts.show-popup .bg-form-box .popup-close{\r\n    position: absolute;\r\n    top: 20px;\r\n    right: 20px;\r\n    border: none;\r\n    color: #fff;\r\n    font-size: 30px;\r\n    cursor: pointer;\r\n    background: unset;\r\n    display: block;\r\n}\r\n\t.form-tvts .bg-form-box .popup-close{\r\n\tdisplay: none;\r\n\t}\r\n@media only screen and (max-width: 500px) {\r\n    .form-tvts.show-popup .form-row {\r\n        grid-template-columns: 49% 49%;\r\n    }\r\n\t.form-tvts.show-popup .bg-form-box{\r\n\t  margin-top: 50px;\r\n\t}\r\n\t.form-tvts.show-popup .form-img{\r\n\tdisplay: none;\r\n\t}\r\n\t.form-tvts.show-popup .form-box h2{\r\n\t   padding: 28px 24px 0;\r\n\t}\r\n\t.form-tvts.show-popup .bg-form-box .popup-close{\r\n\ttop: 0;\r\n    right: 10px;\r\n\t}\r\n}\r\n<\/style>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5427,"featured_media":23012,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/about-faculty-post-new.php","meta":{"footnotes":""},"class_list":["post-21149","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/pages\/21149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/users\/5427"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/comments?post=21149"}],"version-history":[{"count":10,"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/pages\/21149\/revisions"}],"predecessor-version":[{"id":26149,"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/pages\/21149\/revisions\/26149"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/media\/23012"}],"wp:attachment":[{"href":"https:\/\/www.hoasen.edu.vn\/tuyensinh\/wp-json\/wp\/v2\/media?parent=21149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}