Ошибка: не удается прочитать свойство id неопределенных таблиц данных. - PullRequest
0 голосов
/ 17 июня 2020

привет, у меня есть эта ошибка:

Uncaught TypeError: невозможно прочитать свойство 'id' неопределенного

Во время редактирования и сохранения 1 записи это происходит это правильно, но когда я пытаюсь отредактировать другую запись, он показывает мне ошибку.

Я пробовал разные решения, я читал о reload (); но это не устранило ошибку. Не могли бы вы помочь мне. Спасибо

Это код

показать данные для редактирования

<form action="" class="form-horizontal"  method="POST">
  <input type="hidden" id="id_reg" name="id_reg" value="">
  <input type="hidden" id="opcion" name="opcion" value="registrar">
  <input type="text" name="identification" id="identification" disabled>
  <input type="text" name="nombre" id="nombre" disabled>
  <input type="text" id="apellido" name="apellido" disabled>
  <input type="text" id="estado" name="estado" autofocus>
  <input type="text" id="fecha" name="fecha" autofocus>
  <input type="text" id="hora" name="hora" autofocus>
  <input type="submit" value="Guardar">
  <input type="button" id="btn_listar" value="listar">
</form>


<table id="assistance" class="table table-bordered table-hover" cellspacing="0" width="100%">
  <thead>
    <tr>
      <th>ID</th>
      <th>Cedula</th>
      <th>Nombre</th>
      <th>Apellido</th>
      <th>Estado</th>
      <th>Fecha</th>
      <th>Hora</th>
      <th>id user</th>
      <th></th>
    </tr>
  </thead>
</table>

$(document).ready( function () {
  listar();
  guardar();
});

Сохранить данные

var guardar = function(){
  $("form").on("submit", function(e){
    e.preventDefault();
    var frm = $(this).serialize();
    $.ajax({
      method: "POST",
      url: "guardar.php",
      data: frm
    }).done( function( info ){
      console.log( info );        
      var json_info = JSON.parse( info );
      mostrar_mensaje(json_info);
      limpiar_datos();
      listar();
    });
  });
}

Получить данные для списка

var listar = function(){
  var table = $("#assistance").DataTable({
  "destroy":true,
  "ajax":{
    "method":"POST",
    "url":"listar.php"
  },
  "columns":[
    {"data":"id"},
    {"data":"identification"},
    {"data":"first_name"},
    {"data":"last_name"},
    {"data":"estado"},
    {"data":"assistance_date"},
    {"data":"assistance_time"},
    {"data":"id_subscriber"},
    {"defaultContent":"<button type='button' class='editar btn btn-primary'>Edit</button>   <button type='button' class='eliminar btn btn-danger' data-toggle='modal' data-target='#modalEliminar' >Delete</i></button>"}
  ],
  "language":idioma_espanol
});
/* Call functions get data for edit and reload */
obtener_data_editar("#assistance tbody", table);
setInterval( function (tbody, table) {
  $(table).DataTable({ajax: "data.json"}).ajax.reload(null, false);
  });
}

Получить данные для редактирования

var obtener_data_editar = function(tbody, table){
  $(tbody).on("click", "button.editar", function(){
    var data = table.row( $(this).parents("tr") ).data();
    console.log(table.row( $(this).parents("tr") ).data());
    var id = $("#id_reg").val( data.id ),
    id_subs = $("#id_subs").val(data.id_subs),
    identification = $("#identification").val(data.identification),
    first_name = $("#nombre").val(data.first_name),
    last_name = $("#apellido").val(data.last_name),
    estado= $("#estado").val(data.estado),
    assistance_date= $("#fecha").val(data.assistance_date),
    assistance_time= $("#hora").val(data.assistance_time),
    opcion = $("#opcion").val("modificar");
  });
}
...