J'essaie depuis presque une journée !

J'ai un tableau de chaînes de "<tr>...</tr>" à ajouter à une table Datatables. Mais chaque manière que j'ai essayée a toujours pour résultat que l'ensemble [object HTMLTableRowElement] est poussé dans la 1ère colonne uniquement.

Comment suis-je censé faire ça ? Pouvez-vous aider?

Ce que j'ai jusqu'à présent:

var table = $j('#table_view_subs').DataTable();

var fakehtml = '<tr><td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td></tr>';

table.row.add($(fakehtml)).draw();

J'ai essayé de créer un élément avec javascript, en ajoutant le code html et en l'ajoutant à row. J'ai aussi essayé plein d'autres trucs, je ne sais même pas x(

Ok, voici le violon !

0
user5646514 19 mars 2019 à 17:16

2 réponses

Meilleure réponse

J'ai supprimé le code HTML et fourni à la place un tableau d'entrée pour les colonnes.

Exemple de travail : https://jsfiddle.net/vpjmzc6k/

$(document).ready( function () {
    const table = $('#table_view_subs').DataTable(),
    input = [1,2,3,4,5,6];

    table.row.add(input).draw();
} );

<table id="table_view_subs">
 <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
                <td>61</td>
                <td>2011/04/25</td>
                <td>$320,800</td>
            </tr>
            </tbody>
</table>
0
Xatenev 19 mars 2019 à 14:32

La fonction API Datatables row.add() peut prendre un nœud JQuery comme argument. Vous pourriez quelque chose comme ceci :

strArray.forEach(function(el){
    table.row.add($(el));
});
table.draw();

En supposant que strArray soit le tableau de chaînes et que chaque chaîne représente un élément <tr>, cela devrait fonctionner.

0
Sebastianb 19 mars 2019 à 19:13