{"id":4317,"date":"2026-06-27T18:55:32","date_gmt":"2026-06-27T16:55:32","guid":{"rendered":"https:\/\/www.jkcf.com\/?page_id=4317"},"modified":"2026-06-27T19:54:13","modified_gmt":"2026-06-27T17:54:13","slug":"resultats-du-jkcf","status":"publish","type":"page","link":"https:\/\/www.jkcf.com\/?page_id=4317","title":{"rendered":"R\u00e9sultats du JKCF"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n\/* =============================================\n   R\u00e9sultats des comp\u00e9titions \u2014 styles\n   ============================================= *\/\n\n.resultats-wrap * {\n  box-sizing: border-box;\n}\n\n.resultats-wrap {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  color: #1a1a1a;\n  max-width: 1200px;\n  margin: 0 auto;\n  padding: 1rem 0;\n}\n\n.resultats-header {\n  margin-bottom: 1.25rem;\n}\n\n.resultats-header h2 {\n  font-size: 22px;\n  font-weight: 500;\n  margin: 0 0 4px;\n}\n\n.resultats-header p {\n  font-size: 14px;\n  color: #666;\n  margin: 0;\n}\n\n\/* Filtres *\/\n.resultats-filters {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n  gap: 10px;\n  margin-bottom: 0.75rem;\n}\n\n.resultats-filters select {\n  width: 100%;\n  padding: 7px 10px;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  border-radius: 6px;\n  background: #fff;\n  color: #1a1a1a;\n  cursor: pointer;\n}\n\n.resultats-filters select:hover {\n  border-color: #aaa;\n}\n\n\/* Stats *\/\n.resultats-stats {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  margin-bottom: 0.75rem;\n  font-size: 13px;\n  color: #555;\n}\n\n.resultats-stats .count-badge {\n  background: #f5f5f3;\n  border: 1px solid #e5e5e3;\n  border-radius: 6px;\n  padding: 3px 10px;\n}\n\n.resultats-stats .count-badge strong {\n  color: #1a1a1a;\n}\n\n.resultats-reset {\n  margin-left: auto;\n  font-size: 12px;\n  color: #185FA5;\n  background: none;\n  border: none;\n  cursor: pointer;\n  padding: 0;\n}\n\n.resultats-reset:hover {\n  text-decoration: underline;\n}\n\n\/* Tableau *\/\n.resultats-table-wrap {\n  border: 1px solid #e5e5e3;\n  border-radius: 10px;\n  overflow-x: auto;\n}\n\n.resultats-table {\n  width: 100%;\n  border-collapse: collapse;\n  font-size: 13px;\n  min-width: 800px;\n}\n\n.resultats-table thead {\n  background: #f9f9f7;\n}\n\n.resultats-table th {\n  padding: 10px 12px;\n  text-align: left;\n  font-weight: 500;\n  font-size: 12px;\n  color: #666;\n  border-bottom: 1px solid #e5e5e3;\n  white-space: nowrap;\n}\n\n.resultats-table td {\n  padding: 9px 12px;\n  border-bottom: 1px solid #e5e5e3;\n  vertical-align: top;\n}\n\n.resultats-table tr:last-child td {\n  border-bottom: none;\n}\n\n.resultats-table tbody tr:hover td {\n  background: #f9f9f7;\n}\n\n\/* Cellules multi-lignes *\/\n.td-competition,\n.td-equipe {\n  white-space: normal;\n  line-height: 1.5;\n}\n\n\/* Classement *\/\n.resultats-table td strong {\n  font-weight: 500;\n  color: #185FA5;\n}\n\n\/* Composition \u00e9quipe *\/\n.td-equipe {\n  color: #555;\n  font-size: 12px;\n}\n\n\/* Badges niveau *\/\n.badge {\n  display: inline-block;\n  font-size: 11px;\n  font-weight: 500;\n  padding: 2px 8px;\n  border-radius: 20px;\n  white-space: nowrap;\n}\n\n.badge-dept  { background: #E6F1FB; color: #185FA5; }\n.badge-reg   { background: #EAF3DE; color: #3B6D11; }\n.badge-nat   { background: #FAEEDA; color: #854F0B; }\n.badge-inter { background: #EEEDFE; color: #3C3489; }\n\n\/* Message vide \/ chargement *\/\n.resultats-empty {\n  text-align: center;\n  padding: 2.5rem;\n  color: #999;\n  font-size: 14px;\n}\n\n\/* Responsive *\/\n@media (max-width: 700px) {\n  .resultats-table th:nth-child(7),\n  .resultats-table td:nth-child(7) {\n    display: none;\n  }\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n\/* =============================================\n   R\u00e9sultats des comp\u00e9titions \u2014 logique JS\n   Lit les donn\u00e9es depuis #resultats-data (DOM)\n   ============================================= *\/\n\n(function () {\n\n  var NIVEAU_CLASS = {\n    \"D\u00e9partemental\": \"badge-dept\",\n    \"R\u00e9gional\":      \"badge-reg\",\n    \"National\":      \"badge-nat\",\n    \"International\": \"badge-inter\"\n  };\n\n  function fmtDate(d) {\n    var p = d.split(\"-\");\n    return p[2] + \"\/\" + p[1] + \"\/\" + p[0];\n  }\n\n  function buildRows(DATA) {\n    var tbody = document.getElementById(\"resultats-tbody\");\n    if (!tbody) return;\n\n    DATA.sort(function (a, b) { return b.date.localeCompare(a.date); });\n\n    DATA.forEach(function (r) {\n      var tr = document.createElement(\"tr\");\n      tr.dataset.niveau     = r.niveau;\n      tr.dataset.discipline = r.discipline;\n      tr.dataset.categorie  = r.categorie;\n      tr.dataset.annee      = r.date.slice(0, 4);\n\n      tr.innerHTML =\n        '<td><span class=\"badge ' + (NIVEAU_CLASS[r.niveau] || \"\") + '\">' + r.niveau + \"<\/span><\/td>\" +\n        \"<td>\" + r.discipline + \"<\/td>\" +\n        '<td class=\"td-competition\">' + r.competition + \"<\/td>\" +\n        \"<td>\" + fmtDate(r.date) + \"<\/td>\" +\n        \"<td><strong>\" + r.classement + \"<\/strong><\/td>\" +\n        \"<td>\" + (r.competiteur || \"\") + \"<\/td>\" +\n        '<td class=\"td-equipe\">' + (r.equipe || \"\") + \"<\/td>\" +\n        \"<td>\" + r.categorie + \"<\/td>\";\n\n      tbody.appendChild(tr);\n    });\n  }\n\n  function applyFilters() {\n    var niveau     = document.getElementById(\"f-niveau\").value;\n    var discipline = document.getElementById(\"f-discipline\").value;\n    var categorie  = document.getElementById(\"f-categorie\").value;\n    var annee      = document.getElementById(\"f-annee\").value;\n\n    var rows  = document.querySelectorAll(\"#resultats-tbody tr[data-niveau]\");\n    var count = 0;\n\n    rows.forEach(function (r) {\n      var show =\n        (!niveau     || r.dataset.niveau     === niveau)     &&\n        (!discipline || r.dataset.discipline === discipline)  &&\n        (!categorie  || r.dataset.categorie  === categorie)   &&\n        (!annee      || r.dataset.annee      === annee);\n\n      r.style.display = show ? \"\" : \"none\";\n      if (show) count++;\n    });\n\n    document.getElementById(\"resultats-count\").textContent = count;\n\n    var emptyRow = document.getElementById(\"resultats-empty-row\");\n    if (count === 0 && !emptyRow) {\n      var tr = document.createElement(\"tr\");\n      tr.id = \"resultats-empty-row\";\n      tr.innerHTML = '<td colspan=\"8\" class=\"resultats-empty\">Aucun r\u00e9sultat pour ces filtres.<\/td>';\n      document.getElementById(\"resultats-tbody\").appendChild(tr);\n    } else if (count > 0 && emptyRow) {\n      emptyRow.remove();\n    }\n  }\n\n  window.resultatsReset = function () {\n    [\"f-niveau\", \"f-discipline\", \"f-categorie\", \"f-annee\"].forEach(function (id) {\n      document.getElementById(id).value = \"\";\n    });\n    applyFilters();\n  };\n\n  document.addEventListener(\"DOMContentLoaded\", function () {\n    \/* Lit le JSON depuis le bloc <script> embarqu\u00e9 dans la page *\/\n    var dataEl = document.getElementById(\"resultats-data\");\n    if (!dataEl) {\n      console.error(\"R\u00e9sultats : bloc #resultats-data introuvable\");\n      return;\n    }\n\n    var data;\n    try {\n      data = JSON.parse(dataEl.textContent);\n    } catch (e) {\n      console.error(\"R\u00e9sultats : JSON invalide \u2014\", e);\n      document.getElementById(\"resultats-tbody\").innerHTML =\n        '<tr><td colspan=\"8\" class=\"resultats-empty\">Erreur dans les donn\u00e9es.<\/td><\/tr>';\n      return;\n    }\n\n    buildRows(data);\n    document.querySelectorAll(\".resultats-filters select\").forEach(function (s) {\n      s.addEventListener(\"change\", applyFilters);\n    });\n    applyFilters();\n  });\n\n})();\n<\/script>\n\n<!--\n  =============================================\n  BLOC 1 \u2014 DONN\u00c9ES (bloc HTML personnalis\u00e9)\n  \u00c0 mettre en PREMIER sur la page WordPress.\n  Pour mettre \u00e0 jour les r\u00e9sultats : modifier\n  uniquement le tableau JSON ci-dessous.\n  =============================================\n-->\n<script type=\"application\/json\" id=\"resultats-data\">\n[\n  {\n    \"niveau\": \"International\",\n    \"discipline\": \"Kendo\",\n    \"competition\": \"Open de France \u2013 Men A\",\n    \"date\": \"2026-06-03\",\n    \"categorie\": \"Senior\",\n    \"classement\": \"3\u00e8me\",\n    \"competiteur\": \"\",\n    \"equipe\": \"\"\n  },\n  {\n    \"niveau\": \"National\",\n    \"discipline\": \"Kendo\",\n    \"competition\": \"Championnat de France Honneurs par \u00e9quipe\",\n    \"date\": \"2025-05-25\",\n    \"categorie\": \"Senior\",\n    \"classement\": \"1er\",\n    \"competiteur\": \"\",\n    \"equipe\": \"Anthony COUE, St\u00e9phane PLOQUIN, Sylvio MONTESSINOS\"\n  },\n  {\n    \"niveau\": \"R\u00e9gional\",\n    \"discipline\": \"Kendo\",\n    \"competition\": \"Coupe \u00cele-de-France\",\n    \"date\": \"2025-02-08\",\n    \"categorie\": \"U18\",\n    \"classement\": \"2\u00e8me\",\n    \"competiteur\": \"Sara NKOSI\",\n    \"equipe\": \"\"\n  },\n  {\n    \"niveau\": \"D\u00e9partemental\",\n    \"discipline\": \"Iaido\",\n    \"competition\": \"Open Seine-et-Marne\",\n    \"date\": \"2025-01-20\",\n    \"categorie\": \"V\u00e9t\u00e9ran\",\n    \"classement\": \"1er\",\n    \"competiteur\": \"Claude MOREL\",\n    \"equipe\": \"\"\n  },\n  {\n    \"niveau\": \"National\",\n    \"discipline\": \"Judo \/ Jujitsu\",\n    \"competition\": \"Championnat de France Jujitsu\",\n    \"date\": \"2024-10-12\",\n    \"categorie\": \"U21\",\n    \"classement\": \"3\u00e8me\",\n    \"competiteur\": \"Am\u00e9lie ROUSSEAU\",\n    \"equipe\": \"\"\n  },\n  {\n    \"niveau\": \"R\u00e9gional\",\n    \"discipline\": \"Judo \/ Jujitsu\",\n    \"competition\": \"Coupe r\u00e9gionale ne-waza par \u00e9quipes\",\n    \"date\": \"2025-05-18\",\n    \"categorie\": \"Senior\",\n    \"classement\": \"1er\",\n    \"competiteur\": \"\",\n    \"equipe\": \"Jean DUPONT, Marie MARTIN, Paul BERNARD\"\n  }\n]\n<\/script>\n\n<!--\n  =============================================\n  BLOC 2 \u2014 TABLEAU (bloc HTML personnalis\u00e9)\n  \u00c0 mettre juste apr\u00e8s le bloc donn\u00e9es.\n  Ne pas modifier sauf pour les filtres.\n  =============================================\n-->\n<div id=\"resultats-wrap\" class=\"resultats-wrap\">\n\n  <div class=\"resultats-header\">\n    <h2>R\u00e9sultats des comp\u00e9titions<\/h2>\n    <p>Judo \/ Jujitsu &middot; Kendo &middot; Iaido<\/p>\n  <\/div>\n\n  <div class=\"resultats-filters\">\n    <select id=\"f-niveau\">\n      <option value=\"\">Tous les niveaux<\/option>\n      <option>D\u00e9partemental<\/option>\n      <option>R\u00e9gional<\/option>\n      <option>National<\/option>\n      <option>International<\/option>\n    <\/select>\n    <select id=\"f-discipline\">\n      <option value=\"\">Toutes les disciplines<\/option>\n      <option>Judo \/ Jujitsu<\/option>\n      <option>Kendo<\/option>\n      <option>Iaido<\/option>\n    <\/select>\n    <select id=\"f-categorie\">\n      <option value=\"\">Toutes les cat\u00e9gories<\/option>\n      <option>U13<\/option>\n      <option>U15<\/option>\n      <option>U18<\/option>\n      <option>U21<\/option>\n      <option>Senior<\/option>\n      <option>V\u00e9t\u00e9ran<\/option>\n    <\/select>\n    <select id=\"f-annee\">\n      <option value=\"\">Toutes les ann\u00e9es<\/option>\n      <option>2026<\/option>\n      <option>2025<\/option>\n      <option>2024<\/option>\n    <\/select>\n  <\/div>\n\n  <div class=\"resultats-stats\">\n    <span class=\"count-badge\"><strong id=\"resultats-count\">\u2014<\/strong> r\u00e9sultat(s)<\/span>\n    <button class=\"resultats-reset\" onclick=\"resultatsReset()\">R\u00e9initialiser les filtres<\/button>\n  <\/div>\n\n  <div class=\"resultats-table-wrap\">\n    <table class=\"resultats-table\">\n      <thead>\n        <tr>\n          <th style=\"width:13%\">Niveau<\/th>\n          <th style=\"width:12%\">Discipline<\/th>\n          <th style=\"width:20%\">Comp\u00e9tition<\/th>\n          <th style=\"width:9%\">Date<\/th>\n          <th style=\"width:8%\">Classement<\/th>\n          <th style=\"width:14%\">Nom comp\u00e9titeur<\/th>\n          <th style=\"width:16%\">Composition \u00e9quipe<\/th>\n          <th style=\"width:8%\">Cat\u00e9gorie<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody id=\"resultats-tbody\"><\/tbody>\n    <\/table>\n  <\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9sultats des comp\u00e9titions Judo \/ Jujitsu &middot; Kendo &middot; Iaido Tous les niveauxD\u00e9partementalR\u00e9gionalNationalInternational Toutes les disciplinesJudo \/ JujitsuKendoIaido Toutes les cat\u00e9goriesU13U15U18U21SeniorV\u00e9t\u00e9ran Toutes les ann\u00e9es202620252024 \u2014 r\u00e9sultat(s) R\u00e9initialiser les filtres Niveau Discipline Comp\u00e9tition Date Classement Nom comp\u00e9titeur Composition \u00e9quipe Cat\u00e9gorie<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"iawp_total_views":3,"footnotes":""},"class_list":["post-4317","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.jkcf.com\/index.php?rest_route=\/wp\/v2\/pages\/4317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jkcf.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.jkcf.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.jkcf.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jkcf.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4317"}],"version-history":[{"count":7,"href":"https:\/\/www.jkcf.com\/index.php?rest_route=\/wp\/v2\/pages\/4317\/revisions"}],"predecessor-version":[{"id":4333,"href":"https:\/\/www.jkcf.com\/index.php?rest_route=\/wp\/v2\/pages\/4317\/revisions\/4333"}],"wp:attachment":[{"href":"https:\/\/www.jkcf.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}