From 94eeba280abafdbd8ce243002578c1838a71cc27 Mon Sep 17 00:00:00 2001 From: morgane Date: Wed, 17 Jun 2026 20:24:11 +0000 Subject: [PATCH] Actualiser test.html --- test.html | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/test.html b/test.html index acf4d8c..e1407e5 100644 --- a/test.html +++ b/test.html @@ -82,45 +82,43 @@ const checkedBoxes = document.querySelectorAll('.prod-check:checked'); if(checkedBoxes.length === 0) return alert("Coche des produits !"); - + const btn = document.getElementById('save-btn'); btn.disabled = true; btn.textContent = "Traitement en cours..."; let successCount = 0; let errorCount = 0; - + + // --- TENTATIVE DE RÉCUPÉRATION DU JETON --- + // Regarde le nom du champ "name" dans le Payload de ta requête qui marche + // Ici on essaie les plus courants + let token = document.querySelector('input[name="csrf_token"]')?.value || + document.querySelector('input[name="_token"]')?.value || ""; + for (const checkbox of checkedBoxes) { - let p = fullProductList[checkbox.dataset.index]; + let p = { ...fullProductList[checkbox.dataset.index] }; let formData = new FormData(); - for (let key in p) { - formData.append(key, p[key]); - } + for (let key in p) { formData.append(key, p[key]); } formData.set('category', newCat); + if (token) formData.append('csrf_token', token); // Ajuste 'csrf_token' si besoin try { - // On ajoute l'en-tête X-Requested-With qui est souvent le verrou du 403 let res = await fetch('api/index.php?action=product_save', { method: 'POST', body: formData, - headers: { - 'X-Requested-With': 'XMLHttpRequest' - } + headers: { 'X-Requested-With': 'XMLHttpRequest' } }); - // On récupère le texte pour voir ce que le serveur dit vraiment en cas d'erreur - let resultText = await res.text(); - - if (res.ok) { - successCount++; - } else { - console.error("Échec sur " + p.name + " (Code " + res.status + "):", resultText); + if (res.ok) successCount++; + else { + let text = await res.text(); + console.error("Échec:", text); errorCount++; } await new Promise(r => setTimeout(r, 300)); } catch (e) { - console.error("Erreur critique sur " + p.name, e); errorCount++; } } @@ -128,7 +126,7 @@ await loadData(); btn.disabled = false; btn.textContent = "APPLIQUER AUX COCHÉS"; - alert(`Traitement terminé :\n- Succès : ${successCount}\n- Erreurs : ${errorCount}\n\n(Vérifie la console F12 pour le détail des erreurs)`); + alert(`Terminé :\n- Succès : ${successCount}\n- Erreurs : ${errorCount}`); }