{"id":3534,"date":"2026-10-01T17:30:16","date_gmt":"2026-10-01T17:30:16","guid":{"rendered":"https:\/\/lestresorsdutcg.fr\/recherche-carte\/"},"modified":"2026-10-01T17:30:16","modified_gmt":"2026-10-01T17:30:16","slug":"recherche-carte","status":"publish","type":"page","link":"https:\/\/lestresorsdutcg.fr\/en\/recherche-carte\/","title":{"rendered":"Card search"},"content":{"rendered":"<div class=\"ltdt-home ltdt-rc\">\n  <section class=\"ltdt-rc__intro\">\n    <h1 class=\"ltdt-rc__title\">Recherche de carte<\/h1>\n    <p class=\"ltdt-rc__lead\">Tu cherches une carte pr\u00e9cise ? Choisis le jeu, tape le num\u00e9ro ou le nom de la carte, s\u00e9lectionne-la et envoie-nous ta demande : on te r\u00e9pond tr\u00e8s vite.<\/p>\n  <\/section>\n  <form class=\"ltdt-rc__form\" novalidate>\n    <div class=\"ltdt-rc__card\">\n      <h2 class=\"ltdt-rc__h2\"><span>1<\/span> Choisis le jeu et ta carte<\/h2>\n      <div class=\"ltdt-rc__games\" role=\"tablist\" aria-label=\"Jeu\">\n        <button type=\"button\" class=\"ltdt-rc__game is-active\" data-game=\"pokemon\" role=\"tab\" aria-selected=\"true\">Pok\u00e9mon<\/button>\n        <button type=\"button\" class=\"ltdt-rc__game\" data-game=\"onepiece\" role=\"tab\" aria-selected=\"false\">One Piece<\/button>\n        <button type=\"button\" class=\"ltdt-rc__game\" data-game=\"dragonball\" role=\"tab\" aria-selected=\"false\">Dragon Ball<\/button>\n      <\/div>\n      <div class=\"ltdt-rc__search\" data-panel=\"search\">\n        <div class=\"ltdt-rc__langs\">\n          <label><input type=\"radio\" name=\"ltdt-rc-db\" value=\"fr\" checked> Cartes fran\u00e7aises<\/label>\n          <label><input type=\"radio\" name=\"ltdt-rc-db\" value=\"ja\"> Cartes japonaises<\/label>\n        <\/div>\n        <div class=\"ltdt-rc__row\">\n          <input type=\"search\" class=\"ltdt-rc__q\" placeholder=\"Ex. : 125\/094 ou Dracaufeu\" aria-label=\"Num\u00e9ro ou nom de la carte\" maxlength=\"60\">\n          <button type=\"button\" class=\"ltdt-btn ltdt-rc__go\">Rechercher<\/button>\n        <\/div>\n        <p class=\"ltdt-rc__hint ltdt-rc__hint--s\"><\/p>\n        <div class=\"ltdt-rc__status\" aria-live=\"polite\"><\/div>\n        <div class=\"ltdt-rc__results\"><\/div>\n      <\/div>\n      <div class=\"ltdt-rc__manual\" data-panel=\"manual\" hidden>\n        <p class=\"ltdt-rc__hint\">Pour Dragon Ball, indique le num\u00e9ro et le nom de la carte, puis clique sur \u00ab Ajouter \u00bb.<\/p>\n        <div class=\"ltdt-rc__row\">\n          <input type=\"text\" class=\"ltdt-rc__mnum\" placeholder=\"Num\u00e9ro (ex. : FB01-001)\" maxlength=\"40\" aria-label=\"Num\u00e9ro de la carte\">\n          <input type=\"text\" class=\"ltdt-rc__mname\" placeholder=\"Nom de la carte (ex. : Son Goku)\" maxlength=\"120\" aria-label=\"Nom de la carte\">\n          <button type=\"button\" class=\"ltdt-btn ltdt-rc__madd\">Ajouter<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"ltdt-rc__card\">\n      <h2 class=\"ltdt-rc__h2\"><span>2<\/span> Ta s\u00e9lection<\/h2>\n      <p class=\"ltdt-rc__empty\">Aucune carte s\u00e9lectionn\u00e9e pour l\u2019instant. Clique sur une carte pour l\u2019ajouter (10 maximum).<\/p>\n      <ul class=\"ltdt-rc__sel\"><\/ul>\n    <\/div>\n    <div class=\"ltdt-rc__card\">\n      <h2 class=\"ltdt-rc__h2\"><span>3<\/span> Tes coordonn\u00e9es<\/h2>\n      <div class=\"ltdt-rc__grid\">\n        <label>Pr\u00e9nom et nom *<input type=\"text\" name=\"name\" autocomplete=\"name\" required maxlength=\"80\"><\/label>\n        <label>E-mail *<input type=\"email\" name=\"email\" autocomplete=\"email\" required maxlength=\"120\"><\/label>\n        <label>T\u00e9l\u00e9phone<input type=\"tel\" name=\"phone\" autocomplete=\"tel\" maxlength=\"30\"><\/label>\n      <\/div>\n      <label class=\"ltdt-rc__full\">Message (facultatif)<textarea name=\"message\" rows=\"3\" maxlength=\"1000\" placeholder=\"Budget, \u00e9dition, pr\u00e9cision sur la carte\u2026\"><\/textarea><\/label>\n      <label class=\"ltdt-rc__hp\" aria-hidden=\"true\">Site<input type=\"text\" name=\"site\" tabindex=\"-1\" autocomplete=\"off\"><\/label>\n      <label class=\"ltdt-rc__consent\"><input type=\"checkbox\" name=\"consent\" value=\"1\"> <span>J\u2019accepte que mes donn\u00e9es soient utilis\u00e9es pour traiter ma demande (voir la <a href=\"https:\/\/lestresorsdutcg.fr\/en\/politique-confidentialite\/\" target=\"_blank\" rel=\"noopener\">politique de confidentialit\u00e9<\/a>).<\/span><\/label>\n      <button type=\"submit\" class=\"ltdt-btn ltdt-rc__send\">Envoyer ma demande<\/button>\n      <div class=\"ltdt-rc__msg\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n<\/div>\n<script>\n(function () {\n  function init() {\n    var root = document.querySelector('.ltdt-rc');\n    if (!root || root.getAttribute('data-ready')) { return; }\n    root.setAttribute('data-ready', '1');\n    var API = \"https:\\\/\\\/lestresorsdutcg.fr\\\/en\\\/wp-json\\\/ltdt\\\/v1\\\/\";\n    var game = 'pokemon', sel = [], MAX = 10;\n    function $(s) { return root.querySelector(s); }\n    function el(tag, cls, txt) { var e = document.createElement(tag); if (cls) { e.className = cls; } if (txt != null) { e.textContent = txt; } return e; }\n    var q = $('.ltdt-rc__q'), res = $('.ltdt-rc__results'), status = $('.ltdt-rc__status'), hint = $('.ltdt-rc__hint--s');\n    var ph = { pokemon: 'Ex. : 125\/094 ou Dracaufeu', onepiece: 'Ex. : OP01-001 ou Luffy' };\n    var hints = { pokemon: 'Tape le num\u00e9ro inscrit en bas de la carte (ex. 125\/094) ou son nom. Pour les cartes japonaises, cherche plut\u00f4t par num\u00e9ro (ex. 201\/165).', onepiece: 'Tape le code de la carte (ex. OP01-001, ST31-004) ou son nom en anglais (ex. Luffy, Zoro).' };\n    function setGame(g) {\n      game = g;\n      root.querySelectorAll('.ltdt-rc__game').forEach(function (b) { var on = b.getAttribute('data-game') === g; b.classList.toggle('is-active', on); b.setAttribute('aria-selected', on ? 'true' : 'false'); });\n      $('[data-panel=\"search\"]').hidden = (g === 'dragonball');\n      $('[data-panel=\"manual\"]').hidden = (g !== 'dragonball');\n      $('.ltdt-rc__langs').hidden = (g !== 'pokemon');\n      q.placeholder = ph[g] || '';\n      hint.textContent = hints[g] || '';\n      res.innerHTML = ''; status.textContent = '';\n    }\n    root.querySelectorAll('.ltdt-rc__game').forEach(function (b) { b.addEventListener('click', function () { setGame(b.getAttribute('data-game')); }); });\n    function picked(key) { return sel.some(function (s) { return s.key === key; }); }\n    function search() {\n      var v = q.value.trim();\n      if (!v) { q.focus(); return; }\n      var dbi = root.querySelector('input[name=\"ltdt-rc-db\"]:checked');\n      var db = dbi ? dbi.value : 'fr';\n      status.textContent = 'Recherche en cours\u2026'; res.innerHTML = '';\n      fetch(API + 'cartes?game=' + encodeURIComponent(game) + '&lang=' + encodeURIComponent(db) + '&q=' + encodeURIComponent(v), { headers: { 'Accept': 'application\/json' } })\n        .then(function (r) { return r.json().then(function (j) { return { ok: r.ok, j: j }; }); })\n        .then(function (x) {\n          if (!x.ok) { status.textContent = (x.j && x.j.error) || 'Une erreur est survenue.'; return; }\n          var list = (x.j && x.j.results) || [];\n          status.textContent = list.length ? (list.length + (list.length > 1 ? ' cartes trouv\u00e9es' : ' carte trouv\u00e9e') + '. Clique sur une carte pour l\u2019ajouter.') : 'Aucune carte trouv\u00e9e. V\u00e9rifie le num\u00e9ro ou essaie avec le nom.';\n          list.forEach(function (c) {\n            var b = el('button', 'ltdt-rc__item'); b.type = 'button';\n            if (c.image) { var im = el('img'); im.src = c.image; im.alt = c.name; im.loading = 'lazy'; im.width = 245; im.height = 342; b.appendChild(im); }\n            else { b.appendChild(el('span', 'ltdt-rc__noimg', 'Image non disponible')); }\n            b.appendChild(el('strong', null, c.name));\n            b.appendChild(el('span', 'ltdt-rc__meta', (c.number ? c.number + ' \u00b7 ' : '') + (c.set || '')));\n            if (picked(c.key)) { b.classList.add('is-picked'); }\n            b.addEventListener('click', function () { if (add(c)) { b.classList.add('is-picked'); } });\n            res.appendChild(b);\n          });\n        })\n        .catch(function () { status.textContent = 'La recherche ne r\u00e9pond pas. R\u00e9essaie dans un instant.'; });\n    }\n    $('.ltdt-rc__go').addEventListener('click', search);\n    q.addEventListener('keydown', function (e) { if (e.key === 'Enter') { e.preventDefault(); search(); } });\n    function add(c) {\n      if (picked(c.key)) { return true; }\n      if (sel.length >= MAX) { status.textContent = '10 cartes maximum par demande.'; return false; }\n      sel.push({ key: c.key, game: c.game, name: c.name || '', number: c.number || '', set: c.set || '', image: c.image || '', hd: c.hd || '', lang: 'Peu importe', cond: 'Peu importe', qty: 1 });\n      render();\n      return true;\n    }\n    $('.ltdt-rc__madd').addEventListener('click', function () {\n      var n = $('.ltdt-rc__mnum').value.trim(), m = $('.ltdt-rc__mname').value.trim();\n      if (!n && !m) { $('.ltdt-rc__mnum').focus(); return; }\n      add({ key: 'db-' + Date.now(), game: 'Dragon Ball', name: m || n, number: n, set: '', image: '', hd: '' });\n      $('.ltdt-rc__mnum').value = ''; $('.ltdt-rc__mname').value = '';\n    });\n    function opts(s, vals, cur) { vals.forEach(function (v) { var o = el('option', null, v); o.value = v; if (v === cur) { o.selected = true; } s.appendChild(o); }); }\n    function render() {\n      var ul = $('.ltdt-rc__sel'); ul.innerHTML = '';\n      $('.ltdt-rc__empty').hidden = sel.length > 0;\n      sel.forEach(function (c, i) {\n        var li = el('li', 'ltdt-rc__line');\n        if (c.image) { var im = el('img'); im.src = c.image; im.alt = ''; im.width = 60; im.height = 84; li.appendChild(im); }\n        else { li.appendChild(el('span', 'ltdt-rc__noimg ltdt-rc__noimg--s', c.game)); }\n        var info = el('div', 'ltdt-rc__info');\n        info.appendChild(el('strong', null, c.name));\n        info.appendChild(el('span', 'ltdt-rc__meta', c.game + (c.number ? ' \u00b7 ' + c.number : '') + (c.set ? ' \u00b7 ' + c.set : '')));\n        li.appendChild(info);\n        var box = el('div', 'ltdt-rc__opts');\n        var l1 = el('label', null, 'Langue'); var s1 = el('select'); opts(s1, ['Peu importe', 'Fran\u00e7ais', 'Anglais', 'Japonais'], c.lang); s1.addEventListener('change', function () { c.lang = s1.value; }); l1.appendChild(s1);\n        var l2 = el('label', null, '\u00c9tat'); var s2 = el('select'); opts(s2, ['Peu importe', 'Near Mint', 'Excellent', 'Bon \u00e9tat'], c.cond); s2.addEventListener('change', function () { c.cond = s2.value; }); l2.appendChild(s2);\n        var l3 = el('label', null, 'Quantit\u00e9'); var n3 = el('input'); n3.type = 'number'; n3.min = 1; n3.max = 20; n3.value = c.qty; n3.addEventListener('change', function () { c.qty = Math.max(1, Math.min(20, parseInt(n3.value, 10) || 1)); n3.value = c.qty; }); l3.appendChild(n3);\n        box.appendChild(l1); box.appendChild(l2); box.appendChild(l3); li.appendChild(box);\n        var rm = el('button', 'ltdt-rc__rm', 'Retirer'); rm.type = 'button'; rm.setAttribute('aria-label', 'Retirer ' + c.name);\n        rm.addEventListener('click', function () { sel.splice(i, 1); render(); res.querySelectorAll('.ltdt-rc__item').forEach(function (b) { b.classList.remove('is-picked'); }); });\n        li.appendChild(rm); ul.appendChild(li);\n      });\n    }\n    var form = $('.ltdt-rc__form'), msg = $('.ltdt-rc__msg'), send = $('.ltdt-rc__send');\n    function say(t, cls) { msg.className = 'ltdt-rc__msg' + (cls ? ' ' + cls : ''); msg.textContent = t; }\n    form.addEventListener('submit', function (e) {\n      e.preventDefault();\n      var fd = new FormData(form);\n      if (!sel.length) { say('Ajoute au moins une carte \u00e0 ta demande.', 'is-err'); return; }\n      if (!fd.get('name') || !fd.get('email')) { say('Indique ton nom et ton e-mail.', 'is-err'); return; }\n      if (!fd.get('consent')) { say('Merci de cocher la case de consentement.', 'is-err'); return; }\n      send.disabled = true; say('Envoi en cours\u2026');\n      fetch(API + 'demande', { method: 'POST', headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' }, body: JSON.stringify({ name: fd.get('name'), email: fd.get('email'), phone: fd.get('phone'), message: fd.get('message'), consent: !!fd.get('consent'), site: fd.get('site'), cards: sel }) })\n        .then(function (r) { return r.json().then(function (j) { return { ok: r.ok, j: j }; }); })\n        .then(function (x) {\n          if (x.ok && x.j && x.j.ok) {\n            sel = []; render(); res.innerHTML = ''; status.textContent = ''; form.reset(); setGame(game);\n            say('Merci ! Ta demande est bien envoy\u00e9e. Tu vas recevoir un e-mail de confirmation et on revient vers toi tr\u00e8s vite.', 'is-ok');\n          } else {\n            say((x.j && (x.j.error || x.j.message)) || 'Une erreur est survenue.', 'is-err');\n          }\n        })\n        .catch(function () { say('L\u2019envoi n\u2019a pas abouti. R\u00e9essaie ou \u00e9cris-nous \u00e0 lestresorsdutcg@gmail.com.', 'is-err'); })\n        .then(function () { send.disabled = false; });\n    });\n    setGame('pokemon');\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n<\/script>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"Trouve ta carte Pok\u00e9mon, One Piece ou Dragon Ball \u00e0 l&#039;unit\u00e9 : recherche par num\u00e9ro ou par nom et envoie ta demande \u00e0 Les Tr\u00e9sors du TCG \u00e0 Jacou.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"0","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"class_list":["post-3534","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/pages\/3534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/comments?post=3534"}],"version-history":[{"count":0,"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/pages\/3534\/revisions"}],"wp:attachment":[{"href":"https:\/\/lestresorsdutcg.fr\/en\/wp-json\/wp\/v2\/media?parent=3534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}