Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rdpacato

Uncaught TypeError: data.forEach is not a function

Recommended Posts

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;
	}

);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
			}

	);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

é 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);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.