From 2162ca7d68d689c60596b1fc116ba8df9e9f5621 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 19 Aug 2026 16:41:19 -0500 Subject: [PATCH] =?UTF-8?q?Cargar=20datos=20de=20la=20visita=20anterior:?= =?UTF-8?q?=20los=20datos=20entraban=20pero=20no=20se=20ve=C3=ADan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El botón sí traía las respuestas —comprobado con C028, que encuentra su visita C014 y devuelve 12 campos—, pero los asignaba a mano con el.value y el.checked. Eso no dispara ningún evento, y las secciones condicionales del F-LAB-08 (tipo de dolor, tipo de cáncer, grupo sanguíneo) se despliegan escuchando 'change' e 'input'. Los datos entraban al formulario y las secciones seguían ocultas, así que desde afuera parecía que el botón no hacía nada. Ahora se disparan input y change en cada campo tocado, y el mensaje dice cuántos datos se cargaron en vez de un texto fijo: si son cero, lo dice, en lugar de afirmar que cargó. Aparte: el botón «Corregir datos» del formulario quedó demasiado grande en el cambio anterior. Vuelve a ser discreto —enlace subrayado de 10px— pero con texto, que era lo que le faltaba para encontrarlo. Co-Authored-By: Claude Opus 5 --- ver_formulario_enviado.php | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index 9557f1d..c6d98a7 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -698,10 +698,11 @@ function _addExamWizardHtml(string $cid): string { .campo-linked-label { flex: 0 0 38%; font-size: 12px; color: #6c757d; } /* Antes era solo un lápiz gris de 11px: estaba, pero nadie lo encontraba. Lleva texto y contorno para que se lea como lo que es, un botón. */ - .lnk-corregir { background:#fff; border:1px solid #bfdbfe; border-radius:6px; - color:#1565c0; cursor:pointer; padding:3px 9px; font-size:11px; + .lnk-corregir { background:none; border:none; border-radius:4px; + color:#1565c0; cursor:pointer; padding:1px 5px; font-size:10px; font-weight:600; white-space:nowrap; flex-shrink:0; - display:inline-flex; align-items:center; gap:5px; } + display:inline-flex; align-items:center; gap:3px; + text-decoration:underline; } .lnk-corregir:hover { background:#1565c0; border-color:#1565c0; color:#fff; } .campo-linked-valor { flex: 1; font-size: 13px; font-weight: 600; color: #1565c0; } @@ -1294,7 +1295,7 @@ function _addExamWizardHtml(string $cid): string { @@ -2306,6 +2307,8 @@ window._profDocumento = ; return; } var datos = json.datos_respuestas || {}; + var tocados = [], llenos = 0; + document.querySelectorAll('[name]').forEach(function(el) { var raw = el.name, isArr = raw.slice(-2) === '[]', name = isArr ? raw.slice(0, -2) : raw; if (!(name in datos)) return; @@ -2318,9 +2321,25 @@ window._profDocumento = ; } else { el.value = val; } + tocados.push(el); + llenos++; }); + + // Asignar el valor a mano no dispara ningún evento, y las secciones + // condicionales del formulario —tipo de dolor, tipo de cáncer, grupo + // sanguíneo— se despliegan escuchando 'change' e 'input'. Sin esto los + // datos entraban pero las secciones seguían ocultas, así que parecía + // que el botón no hacía nada. + tocados.forEach(function(el) { + ['input', 'change'].forEach(function(tipo) { + el.dispatchEvent(new Event(tipo, { bubbles: true })); + }); + }); + msg.style.display = ''; - msg.textContent = 'Datos cargados de la visita ' + (json.turno_codigo || '') + '. Revise y firme.'; + msg.textContent = llenos + ? 'Se cargaron ' + llenos + ' dato(s) de la visita ' + (json.turno_codigo || '') + '. Revise y firme.' + : 'La visita ' + (json.turno_codigo || '') + ' no tiene datos que correspondan a este formulario.'; }) .catch(function() { btn.disabled = false;