Holt59 / datatable

Javascript Plugin for data tables creation
http://holt59.github.io/datatable/
MIT License
107 stars 42 forks source link

t[o].cells[n] is undefined #23

Closed neoacevedo closed 7 years ago

neoacevedo commented 7 years ago

Hi, I have downloaded and I am implementing this plugin on a table with dynamic loaded rows from PHP but I am getting this error: t[o].cells[n] is undefined

I have initialized the datatable with $('#my-table').datatable({ pageSize: 10 });

Do I am forgetting something?

Holt59 commented 7 years ago

How do you load the rows?

neoacevedo commented 7 years ago

I load an array of objects. I "render" a view. In this view, I iter this array with a foreach, creating a row on each iteration: ` <?php ?>

id ?> user->first_name !== null) { echo $object->user->first_name . " " . $object->user->last_name; } else { echo "Sin Asignar"; } ?> date)); ?> distance Km" ?> total); } else { $fmt = new NumberFormatter('es_CO', NumberFormatter::CURRENCY); echo $fmt->formatCurrency($object->total, "COP"); } ?>
  `

this last one row is out of the foreach and will show only an info: ` <td colspan=3""> 

Total:
      <td>
      <?php
      setlocale(LC_MONETARY, 'es_CO');
      if (function_exists("money_format")) {
          echo money_format("%.0n", $total);
      } else {
          $fmt = new NumberFormatter('es_CO', NumberFormatter::CURRENCY);
          echo $fmt->formatCurrency($total, "COP");
      }
      ?>
      </td>
  </tr>`

I apologize but the content is not loading all: the line for the foreach is not loaded but looks like: foreach($objects as $object):

I forgot to mention: I am doing it in a WP plugin built by myself.

Holt59 commented 7 years ago

I thought you were loading data with AJAX, which you are not. Could you use the non-compressed file (without .min) and show the error you get? Could you also show me the HTML table you get before using datatable (with pastebin or a gisthub)?

neoacevedo commented 7 years ago

https://pastebin.com/4a2TumV5

TypeError: rows[i].cells[j] is undefined datatable.js:135:17

Table structure validated without errors

All is made with a custom WP Plugin. WP 4.7.4, jQuery 1.12.4

Holt59 commented 7 years ago

I think the problem is the footer - The plugin is currently not really made to work with non-data rows unfortunately.

Could you try without the footer and see what you get?

neoacevedo commented 7 years ago

Yes, you are right. I closed the table before the last one row, and this last one was put onto a new table and finally I could see the pagination and the table rows are showed as expected.

Thank you so much :)

Holt59 commented 7 years ago

The plugin actually recreates the table each time you do operations on it (changing page, filtering, sorting, etc.), so you cannot add extra row in the table.

However, if you wrap the row in a tbody and the footer in a tfooter, everything should work as expected!

Holt59 commented 7 years ago

Okay, this currently does not work, but this is not expected, so I am going to fix this ASAP so you can have a footer on your table!

Holt59 commented 7 years ago

@NestorAcevedo This should be fixed with latest commit so you can add a tfooter and it will stay in place when the table is refreshed (tested with your table).

neoacevedo commented 7 years ago

Ah ok, so if I put a tfooter it should work. I will do. Again, thank you and don't worry, is working. this last one will be a new feature and a great improvement for your plugin that many of us will thank :)