oziLoadData

Versión: 4.0.2Actualizado: 2026-05-27

Descripción

Motor de transporte e integración de la biblioteca ozi-ui. Realiza la recolección, envío y tratamiento de datos en diferentes modos de ejecución, con soporte para destino visual, integración con API y control de comportamiento.

oziLoadData nació como plugin, pero se está convirtiendo en el encanamiento inteligente entre interfaz, datos y backend — un verdadero engine, bridge y transport layer de la Ozi Library.


Ejemplos

[1] Formulario con validación

Validación automática — el botón permanece inactivo hasta que todos los campos obligatorios estén completos.

Se requiere un nombre válido.
Se requiere un apellido válido.
@
Tu nombre de usuario es obligatorio.
Por favor ingresa tu dirección de envío.
Por favor selecciona un país válido.
Por favor proporciona un estado válido.
Código postal requerido.
<button type="button"
    data-zld-url="/api/ejemplo/respuesta"
    data-zld-destiny-id="respuesta1"
    data-zld-catch-group-id="actionForm1"
    class="btn btn-primary">
    Enviar
</button>

[2] Dos formularios simultáneos

Recolecta datos de dos grupos diferentes en un único envío.

<button type="button"
    data-zld-url="/api/ejemplo/respuesta"
    data-zld-destiny-id="respuesta2"
    data-zld-catch-group-id="demoFormA, demoFormB"
    class="btn btn-primary">
    Enviar ambos formularios
</button>

[3] Recolección por nombre de elemento

Recolecta solo los campos con nombres específicos — ignora los demás.

<button type="button"
    data-zld-url="/api/ejemplo/respuesta"
    data-zld-destiny-id="respuesta3"
    data-zld-catch-group-id="demoFormC"
    data-zld-catch-item-name="auto,moto,avion:aeropuerto barajas"
    class="btn btn-primary">
    Enviar solo auto, moto y avion
</button>

avion:aeropuerto barajas — envía el campo con un valor fijo definido en el atributo.


[4] Vía JavaScript — actual

Llamada mediante oziLoadData({...}) directamente en JavaScript.

oziLoadData({
    zldUrl:           '/api/ejemplo/respuesta',
    zldDestinyId:     'respuesta4',
    zldCatchGroupId:  ['demoFormJS'],
    zldCatchItemName: ['auto','moto']
});

[5] Vía JavaScript — legado

Compatibilidad con la versión anterior usando el prefijo ld en lugar de zld.

// Prefijo ld — compatibilidad con versión anterior
oziLoadData({
    ldUrl:           '/api/ejemplo/respuesta',
    ldDestinyId:     'respuesta5',
    ldCatchGroupId:  'demoFormLegacy',
    ldCatchItemName: 'inputLegacy:star-trek'
});

[6] Retorno de la respuesta

Ejemplo del PHP de respuesta que el backend devuelve al frontend.

Backend PHP — ejemplo de respuesta:

<?php header('Content-Type: text/html; charset=utf-8'); ?>

<h6 class="fw-bold">Contenido recibido</h6>
<div class="m-3">
    <?php
    $data = $_POST ?: $_GET;
    foreach ($data as $key => $value) {
        echo "<div>
            <span class='text-primary'>{$key}:</span>
            <span class='text-muted'>{$value}</span>
        </div>";
    }
    ?>
</div>
<hr>
<div class="text-end text-muted" style="font-size:12px">
    Fecha/Hora: <?php echo date('Y-m-d H:i:s'); ?>
</div>

Retorno estructurado JSON:

{
    "perm":   1,
    "isJson": false,
    "ok":     true,
    "status": 200,
    "data":   null,
    "html":   "<h6>Contenido recibido</h6>...",
    "error":  null
}

Características

  • Envío dinámico — soporta los modos fetch, window y page
  • Recolección flexible — recolecta datos por grupo, elemento individual o JSON
  • Respuesta visual — envía el retorno a un destino específico en el DOM
  • Dos formularios simultáneoscatch-group-id acepta múltiples IDs
  • Recolección por nombrecatch-item-name selecciona campos específicos
  • Valor fijocampo:valor envía el valor definido en el atributo
  • Compatibilidad legado — acepta el prefijo ld de la versión anterior
  • Integración con API — facilita llamadas orientadas a datos
  • Limpieza de formulario — limpia campos tras el envío cuando está configurado
  • Soporte de debug — muestra logs detallados mediante data-zld-log

Atributos HTML

[1] Envío

Atributo Descripción
data-zld-url Define el endpoint de envío
data-zld-mode Modo de envío: fetch, window o page
data-zld-mode-method Método de la solicitud: GET o POST
data-zld-mode-page-target Destino de página: _self, _blank, _parent, _top

[2] Recolección de Datos

Atributo Descripción
data-zld-catch-group-id Recolecta los datos dentro del id indicado — acepta múltiples separados por coma
data-zld-catch-item-name Recolecta campos por name — acepta campo o campo:valor_fijo
data-zld-file Tratamiento de archivos: audio-webm, imagen, PDF
data-zld-json Envía datos estructurados en Array o JSON string junto con FormData
data-zld-checkbox Define o asiste el tratamiento de valores de checkbox

[3] Respuesta / Destino

Atributo Descripción
data-zld-destiny-id Define el destino de la respuesta en el DOM
data-zld-destiny-append Agrega la respuesta en el destino indicado
data-zld-destiny-Before Inserta la respuesta antes del destino indicado
data-zld-expect-json Ajusta los headers para JSON y facilita la integración con Laravel
data-zld-api Define la llamada como modo API, orientada a respuesta en datos

[4] Comportamiento / UX

Atributo Descripción
data-zld-form-busy Evita múltiples clics durante la solicitud
data-zld-form-clear Limpia formularios tras el envío, excepto campos hidden
data-zld-reload-script Recarga scripts de la clase ld-reload en escenarios legados

[5] Debug

Atributo Descripción
data-zld-log Activa logs de depuración en la consola

[6] Compatibilidad

Adaptado para IIFE → Async/Await, evita conflictos, ejecución inmediata, ámbito privado y base preparada para SPA. Acepta el prefijo legado ld (ej: ldUrl, ldDestinyId) para compatibilidad con versiones anteriores.