es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estoy teniendo problemas con los datos en formato Datetime2 al analizar los datos en un array con Ajax.

Quiero seleccionar un grupo de datos de fila en la tabla basado en el id que viene al método upNews(). Luego quiero mostrar algunos valores de columna (como Id, Name, Date) en la pantalla de alerta después de dividir los datos en la fila seleccionada. Tengo problemas para recuperar y/o analizar datos en formato Datetime2 contenidos en el array. ¿Cómo puedo ejecutar esto con Ajax?

var selectedValue;

function upNews(pid) {
    var table = $('#kt_datatable').DataTable();
    selectedValue = table.data().filter(x => x.Id == pid)[0];
    $('#idd').val(selectedValue.Id);

$('#nm').val(selectedValue.Name);

/* Tengo problemas al usar el método substring(). */
$('#dt').val(selectedValue.Date.text.substring(0,10));

alert(selectedValue.Date);
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para recuperar y analizar los datos en formato Datetime2 contenidos en el array, se puede utilizar la biblioteca moment.js. Primero, es necesario incluir la biblioteca en tu proyecto agregando una etiqueta de script a tu archivo HTML:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
    

    Luego, en tu función upNews(), puedes analizar los datos en formato Datetime2 utilizando moment.js:

    var selectedValue;
    
    function upNews(pid) {
      var table = $('#kt_datatable').DataTable();
      selectedValue = table.data().filter(x => x.Id == pid)[0];
      $('#idd').val(selectedValue.Id);
      $('#nm').val(selectedValue.Name);
    
      var date = moment(selectedValue.Date);
      var formattedDate = date.format('YYYY-MM-DD');
      $('#dt').val(formattedDate);
    
      alert(selectedValue.Id + ', ' + selectedValue.Name + ', ' + formattedDate);
    }
    

    Para utilizar Ajax y recuperar el grupo de datos de fila desde el servidor, se puede hacer una solicitud al servidor utilizando la función $.ajax() de jQuery. Aquí tienes un ejemplo:

    function upNews(pid) {
      $.ajax({
        url: '/api/news/' + pid,
        type: 'GET',
        success: function(data) {
          selectedValue = data;
          $('#idd').val(selectedValue.Id);
          $('#nm').val(selectedValue.Name);
    
          var date = moment(selectedValue.Date);
          var formattedDate = date.format('YYYY-MM-DD');
          $('#dt').val(formattedDate);
    
          alert(selectedValue.Id + ', ' + selectedValue.Name + ', ' + formattedDate);
        },
        error: function(xhr, textStatus, errorThrown) {
          console.log(errorThrown);
        }
      });
    }
    

    Este código realiza una solicitud GET a la URL /api/news/{pid}, donde {pid} es el ID del grupo de datos de fila que deseas recuperar. Si la solicitud es exitosa, el parámetro data de la función de devolución de llamada success contendrá el grupo de datos de fila en formato JSON. Luego puedes analizar y mostrar los datos como se describe arriba.

Comments are closed.