Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Não tenho ideia do pq esta dando esse erro:
$(document).ready(function() {
$(function() {
$('#tabelaAlerta').footable();
$('#tabelaRegistro').footable();
$('#dataInicialAlerta').mask('00/00/0000');
$('#dataFinalAlerta').mask('00/00/0000');
$('#placaAlerta').mask('AAA-0000');
});
window.setInterval('atualiza()', 3000);
});
function atualiza() {
$
.ajax({
type : "POST",
url : "ServletAnaliticoOcr"
})
.done(
function(data) {
var dados = "";
$('#tabelaAlerta tbody').html("");
data.forEach(function(o) {
dados+="<tr>";
dados+="<td>" + o.codAlerta + "</td>";
dados+="<td>" + o.dataEnvio + "</td>";
dados+="<td>" + o.placa + "</td>";
dados+="<td>" + o.marca + "</td>";
dados+="<td>" + o.modelo + "</td>";
dados+="<td>" + o.camera + "</td>";
dados+="<td>" + o.statusAcao + "</td>";
dados+="<td>" + o.infoAcaoTomada + "</td>";
dados+="<td>" + o.nomeOperador + "</td>";
dados+="</tr>";
});
$('#tabelaAlerta tbody').append(dados).trigger('footable_redraw');
return false;
});
$.ajax({
type : "POST",
url : "ServletAnaliticoOcr"
})
.done(
function(data) {
var dados = "";
$('#tabelaAlertaTotal tbody').html("");
data.forEach(function(o) {
dados+="<tr>";
dados+="<td>" + o.total + "</td>";
dados+="<td>" + o.totalReg + "</td>";
dados+="</tr>";
});
$('#tabelaAlertaTotal tbody').append(dados).trigger('footable_redraw');
return false;
}
);
}Mas tenho um outro js (no qual segui) que faz exatamente isso... e funciona perfeitamente... não sei se está dando conflito por ser parecido... não estou identificando o que está de diferente ou errado...
Uso na função atualiza()
function atualiza() {
$
.ajax({
type : "POST",
url : "ServletAnaliticoOcr"
})
.done(
function(data) {
$('#tabelaAlerta tbody').html("");
data
.forEach(function(o) {
$('#tabelaAlerta tbody').append("<tr>");
$('#tabelaAlerta tbody').append(
"<td>" + o.codAlerta + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.dataEnvio + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.placa + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.marca + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.modelo + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.camera + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.statusAcao + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.infoAcaoTomada + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.nomeOperador + "</td>");
$('#tabelaAlerta tbody').append("</tr>");
});
$('#tabelaAlerta tbody').trigger('footable_redraw');
return false;
});
$.ajax({
type : "POST",
url : "ServletAnaliticoOcr"
})
.done(
function(data) {
$('#tabelaAlertaTotal tbody').html("");
data.forEach(function(o) {
$('#tabelaAlertaTotal tbody').append("<tr>");
$('#tabelaAlertaTotal tbody').append(
"<td>" + o.totalReg + "</td>");
$('#tabelaAlertaTotal tbody').append(
"<td>" + o.total + "</td>");
$('#tabelaAlertaTotal tbody').append("</tr>");
});
$('#tabelaAlertaTotal tbody').append(dados).trigger('footable_redraw');
return false;
}
);
}
A modelo:
function atualiza() {
$
.ajax({
type : "POST",
url : "ServletAlertaOcr"
})
.done(
function(data) {
$('#tabelaAlerta tbody').html("");
var linkExclusao = "<a href=''#'>"
+ "<img alt='Excluir Alerta' style='margin-left:40%' src='img/delete.png' width='15' height='15' onclick='confirmarExcluirAlerta(";
data
.forEach(function(o) {
$('#tabelaAlerta tbody').append("<tr>");
$('#tabelaAlerta tbody')
.append(
"<td><img src='img/alerta.gif' width='60' height='30' /></td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.codAlerta + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.dataEnvio + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.placa + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.marca + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.modelo + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + o.camera + "</td>");
$('#tabelaAlerta tbody').append(
"<td>" + linkExclusao + o.codAlerta
+ ")'></a></td>");
$('#tabelaAlerta tbody').append("</tr>");
});
$('#tabelaAlerta tbody').trigger('footable_redraw');
return false;
});
$.ajax({
type : "POST",
url : "ServletRegistroOcr"
})
.done(
function(data) {
$('#tabelaRegistro tbody').html("");
data.forEach(function(o) {
$('#tabelaRegistro tbody').append("<tr>");
$('#tabelaRegistro tbody').append(
"<td>" + o.codRegistro + "</td>");
$('#tabelaRegistro tbody').append(
"<td>" + o.dataEnvio + "</td>");
$('#tabelaRegistro tbody').append(
"<td>" + o.placa + "</td>");
$('#tabelaRegistro tbody').append(
"<td>" + o.camera + "</td>");
$('#tabelaRegistro tbody').append("</tr>");
});
$('#tabelaRegistro tbody').trigger('footable_redraw');
return false;
}
);
}No console do chrome:
Uncaught TypeError: data.forEach is not a function(anonymous function)
@ functionsB.js:62j
@ jquery-1.11.1.min.js:2k.fireWith
@ jquery-1.11.1.min.js:2x
@ jquery-1.11.1.min.js:4b
@ jquery-1.11.1.min.js:4
Qual é o retorno do data no console.log?
vendo (watch) ele está como data not avaible... mas no que está funcionando fica com a mesma coisa.
Ele fica "atualizando", pegando os dados através da servlet e bd... mas não está colocando na tela.
Está hospedado em algum lugar seu codigo ou apenas local?
local
Como o Rafael disse, somente um Array tem a função forEach.
Verifique se sua variável data é um array.
Então lucas... o fogo é que uso igualzinho na outra tela.. eu praticamente dobrei a tela mudando apenas uns campos.. vem do mesmo jeito...
Envio de uma lista do servlet (pego no bd)... e coloco em tabela... mas com esse modelo da esse erro... já verifiquei com winmerge... não consigo entender o pq desse não responder igual ao anterior
Se não tá funcionando, tem alguma coisa diferente, você que não tá sabendo encontrar o problema.
então... a única coisa diferente são estes 3 campos a mais, e a outra tabela... ele fica dando esse bendito erro no data.foreach... :(
Verifique se sua variável data é um array.
é a mesma... como falei, só mudei uns campos... mas está do mesmo jeito que a outra..
List<ListaAlertasOcr> resultados = dao.listaAlertasGeral();
List<ListaAlertasAnaliticoOcr> resultadosAnaliticos = dao.listaTotalAlertasAnalitico();
request.setAttribute("resultados", resultados);
request.setAttribute("resultadosAnaliticos", resultadosAnaliticos);
request.getRequestDispatcher("analitico.jsp").forward(request, response);
Fala mano beleza?
Seguinte, forEach só aceita array e não objeto.
Da uma olhada na documentação:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
usa o console.log(data) para verificar como está vindo essa variável;