JSON dinâmico e popular DataTable

3 respostas
A

Pessoal,

estou com problemas a gerar uma mensagem JSON dinamicamente e popular um DataTable.

Quando faço da seguinte forma funciona:

var dataSet = [
    [ "1", "01/10/2018", "200,00" ],
    [ "2", "01/11/2018", "250,00" ],
    [ "3", "01/12/2018", "350,00" ]
];

 $('#teste').DataTable({
		    //paging: false,
            //searching: false,
			retrieve: true,
			destroy: true,
            data: dataSet,
            columns: [
              { title: "id" },
              { title: "Data" },            
              { title: "Valor" }
              ]
});

Quando tento gerar dinamicamente, não funciona.

for (var i = 0; i < dados.length - 1; i++){									

   p = "[ \"" + (i+1) + "\",";
   d = "\"" + dados[i] + "\",";
   v = "\"" + vlr + "\" ]";
   msgJson = msgJson + p + d + v + ",";

}

dataSet = msgJson.substr(0,msgJson.length-1);

Mensagem msgJson

gerada = [ "1","11/10/2018","30" ],[ "2","11/11/2018","30" ],[ "3","11/12/2018","30" ]

Alguma luz?

3 Respostas

D

Compare os dois dataSets e veja qual a diferença (também conhecido como jogo dos 2 erros):
O primeiro é esse:

var dataSet = [
[ 1, 01/10/2018, 200,00 ],
[ 2, 01/11/2018, 250,00 ],
[ 3, 01/12/2018, 350,00 ]
];

O segundo é esse

msgJson gerada = [ 1,11/10/2018,30 ],[ 2,11/11/2018,30 ],[ 3,11/12/2018,30 ];

Agora, me fala, o que está faltando para o segundo ser igual ao primeiro?

A

oi Darlan_machado,

Resolvi da seguinte forma:

var dataSet = [];

  for (var i = 0; i < dados.length - 1; i++){
    var p = String(i+1);
    var d = String(dados[i]);
    var v = String(vlr)

    var item = [p, d, v];
    dataSet.push(item)
 }                                                 

 $('#tblParcelas').DataTable({
    //paging: false,
    //searching: false,
    //retrieve: true,           
    data: dataSet,
    columns: [
      { title: "Parcela" },
      { title: "Data Vencimento" },            
      { title: "Valor" }
      ]
 });

Obrigado.

D

boa solução.
O problema, se você viu bem, era que você precisa ter um array de arrays e você não tinha isso.

Criado 30 de agosto de 2018
Ultima resposta 31 de ago. de 2018
Respostas 3
Participantes 2