crud-js

<div class="container">


    <h3>Solicitudes: <?php echo $carpeta["carpeta"];?></h3>
    <form action="" id="formSolicitud">
 
    <input type="hidden" name="carpeta" id="carpeta" value="<?php echo $carpeta["carpeta"];?>">
    <div class="row align-items-center">
        <!-- Campos ocultos para enviar el id al servidor -->
        <div class="col-2">
            <div class="form-group">
                <label for="registro">Presenta:</label>
                <input type="text" name="registro" class="form-control inputstl" placeholder="Carpeta Judicial">
            </div>
        </div>
        <div class="col-3">
            <div class="form-group">
                <label for="solicitud">Solicitud:</label>
                <input type="text" name="solicitud" class="form-control inputstl" placeholder="Carpeta Judicial">
            </div>
        </div>
        <div class="col-2">
            <div class="form-group">
                <label for="f_registro">Fecha registro:</label>
                <input type="date" name="f_registro" class="form-control inputstl" id="Iv_complementaria" placeholder="Carpeta Judicial" aria-invalid="true">
            </div>
        </div>
        <div class="col-2">
            <div class="form-group">
                <label for="comentario">Plazo/Comentario :</label>
                <input type="text" name="comentario" class="form-control inputstl" id="I_complementaria" placeholder="Carpeta Judicial" aria-invalid="true">
            </div>
        </div>
        <div class="col-2">
            <div class="form-group">
                <label for="f_vence">Fecha vence:</label>
                <input type="date" name="f_vence" class="form-control inputstl" id="f_vence" placeholder="Carpeta Judicial" aria-invalid="true">
            </div>
        </div>
        <div class="col-1">
            <div class="form-group">
                <label for="pdf">PDF :</label>
                <input type="text" name="pdf" class="form-control inputstl" id="Iv_complementaria" placeholder="Carpeta Judicial" aria-invalid="true">
            </div>
        </div>
        <div>
            <div class="form-group mt-2">
                <button type="button" class="btn btn-success" id="guardarSolicitudBtn1" >Guardar</button>
            </div>
   
        </div>
    </div>
</form>
       
    <input type="hidden" name="carpeta" id="inputCarpeta" value="<?php echo $carpeta["carpeta"];?>">
    <table id="solicitudtabla" class="table">
        <thead class="thead-dark">
            <tr>
                <th>Id</th>
                <th>Carpeta</th>
                <th>Registro</th>
                <th>Solicitud</th>
                <th>Fecha de Registro</th>
                <th>Comentario</th>
                <th>Fecha de Vencimiento</th>
                <th>Estado</th>
                <th>Resolvio</th>
                <th>Fecha de Contesto</th>
            </tr>
        </thead>
        <tbody id="tablaBody"></tbody>
    </table>

 <!-- Modal para la edición -->
<!-- Modal -->
<div class="modal fade" id="modalEditar" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="id-edit"></h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <form id="formularioEditar">
      <div class="modal-body">

   
                        <input type="hidden" name="id" id="editId">
                        <div class="form-group">
                            <label for="editRegistro">Resolvio:</label>
                            <input type="text" class="form-control" id="resolvio" name="resolvio">
                        </div>
                        <div class="form-group">
                            <label for="editRegistro">Resolvio:</label>
                            <input type="date" class="form-control" id="f_contesto" name="f_contesto">
                        </div>

                     
                 
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="submit" class="btn btn-primary">Guardar Cambios</button>
      </div>
      </form>
    </div>
  </div>
</div>




    </div>
    <script>
        const tablaBody = document.getElementById('tablaBody');
        const modalEditar = document.getElementById('modalEditar');
        const formularioEditar = document.getElementById('formularioEditar');
    datos=[];
    // Variable para almacenar temporalmente el id
    let idSeleccionado;
       
    optenerDatos();//Optemos los datos-const datos = [{id: 1, carpeta: 'Registro 1', registro: 'a', solicitud: 2, f_registro: 'Registro 2', comentario: 'a', f_vence: 'a', Estado: 'a', resolvio: 'a', f_contesto: 'f_contesto'}];
    function optenerDatos() {
        // Obtener el valor del input
        var valorCarpeta = document.getElementById("inputCarpeta").value;
        // Imprimir el valor en la consola
        console.log("Valor de la carpeta:", valorCarpeta);

        //const datos = [{id: 1, carpeta: 'Registro 1', registro: 'a', solicitud: 2, f_registro: 'Registro 2', comentario: 'a', f_vence: 'a', Estado: 'a', resolvio: 'a', f_contesto: 'f_contesto'}];
        fetch(`http://localhost/api/0-solicitud_tabla.php?carpeta=${valorCarpeta}`)
       .then(res => res.json())
     .then(data => {
        //console.log(data.result);
        datos=data.result;
       // console.log("datos", datos)
        pintarTabla(datos);//Pintamos la tabla
       });
    }


    function pintarTabla(datos) {
        // Actualizar la tabla después de guardar los datos exitosamente $('#solicitudtabla').DataTable().ajax.reload();

        let tablaHTML = '';

        for (let dato of datos) {
       
            tablaHTML += `
                <tr>
                    <td>${dato.id}</td>
                    <td>${dato.carpeta}</td>
                    <td>${dato.registro || ''}</td>
                    <td>${dato.solicitud || ''}</td>
                    <td>${dato.f_registro || ''}</td>
                    <td>${dato.comentario || ''}</td>
                    <td>${dato.f_vence || ''}</td>
                    <td>
                            <button class="btn btn-primary" onclick="abrirModalEditar(${dato.id})">Editar</button>
                    </td>
                    <td>${dato.resolvio || ''}</td>
                    <td>${dato.f_contesto || ''}</td>
                </tr>
            `;
        };
   
        // Insertar el HTML generado en el documento
        tablaBody.innerHTML = tablaHTML;
    }

    function abrirModalEditar(idEditar) {
        //Verificamos que se ejecute la funcion con el valor id console.log(idEditar);
        //Transformamos id a string  //const id = idEditar.toString();
        document.getElementById("formularioEditar").reset();
        const id = parseInt(idEditar);
        document.getElementById("id-edit").textContent=id;
        // Buscar el dato correspondiente al ID  console.log("id",id); console.log("datos-abrirmodal",datos);     console.log("dato-id",dato.id);
     
        const dato = datos.find(item => item.id === id);//
   
        idSeleccionado=dato.id;
       
        // Mostrar la modal
         const modalElement = document.getElementById("modalEditar");
        const modal = new bootstrap.Modal(modalElement);
        modal.show();
       
    }
     
    formularioEditar.addEventListener('submit', function(event) {
       
        event.preventDefault();
        //obtenemos los datos del formulario
        const datosFormulario = new FormData(document.getElementById('formularioEditar'));
        console.log([...datosFormulario.entries()]);
        // console.log("le pegue",dato.id);
        // Añade el id a los datos del formulario antes de enviarlo
        datosFormulario.append('id', idSeleccionado);


        fetch(`http://localhost/api/0-solicitud_tabla.php`,{
        method:'POST',
        body:datosFormulario,
        })
        .then(res=>res.json())
        .then(data=>{
            //console.log(data);
            optenerDatos();
        })
        .catch(error => {
        console.error('Error:', error);
        // Manejar el error
        });
       
        // Restablece el formulario y cierra la modal
        formularioEditar.reset();
         
        $(modalEditar).modal('hide');
       // optenerDatos();
    });
     //formulario uno

     const formSolicitud = document.getElementById('formSolicitud');
    document.getElementById('guardarSolicitudBtn1').addEventListener('click', function(event) {
 
        event.preventDefault(event);
        //registros.push(nuevoRegistro);
        guardarSolicitud();
        // mostrarRegistros();
        formSolicitud.reset();
    });

    function guardarSolicitud() {
        // Obtener los valores del formulario
        const datos = new FormData(document.getElementById('formSolicitud'));
       // console.log([...datos.entries()]);
       
        //Solicitud al servidor-registros.push(nuevoRegistro);
        fetch('http://localhost/api/0-solicitud.php', {
            method: 'POST',
            body: datos,
        })
        .then(res => res.json())
        .then(data => {
            console.log(data);
            console.log(data.status);
             
            if (data.status === 'Correcto2') {
                Swal.fire({
                    title: 'Éxito',
                    text: 'Datos guardados exitosamente',
                    confirmButtonColor: '#3085d6',
                });

            }
           //  optenerDatos();


        })
        .catch(error => {
            console.error('Error al procesar la solicitud:', error);
            // Aquí puedes manejar el error de manera adecuada, ya sea mostrando un mensaje al usuario o realizando otra acción.
       
        });
    }




    </script>


<script>
    $(document).ready(function() {
        $('#solicitudtabla').DataTable({
            "order": [
                [4, "desc"]
            ],
            pageLength: 4,
            lengthMenu: [
                [4, 10, 20, -1],
                [4, 10, 20, 'Todos']
            ],
            columnDefs: [{
                orderable: false,
                targets: -1
            }],
            dom: '<"row"<"col-sm-1 col-md-1"l><"col-sm-7 col-md-7"f><"col-sm-4 col-md-4"<"dt-buttons btn-group flex-wrap"B>>>t<"row"<"col-sm-12 col-md-3"p><"col-sm-12 col-md-7"i>>',

// Corregir el nombre del objeto a "buttons"buttons:-- botones:
            botones: [{
                    text: 'csv',
                    extend: 'csvHtml5',
                },
                {
                    texto: 'excel',
                    extensión: 'excelHtml5',
                },
                {
                    texto: 'pdf',
                    extensión: 'pdfHtml5',
                },

            ]
        });
    });
</script>

Comentarios

Entradas populares de este blog

API Web Crypto,

React Events

firmas digitales integradas en PDFs