JQuery - Llenar tabla HTML con Ajax

   
Vista:

Llenar tabla HTML con Ajax

Publicado por Guillermo setialfauno@hotmail.com (5 intervenciones) el 12/08/2016 08:09:40
Hola compañeros, les pido su ayuda una vez más, es una cosa que ya tengo la cabeza caliente.
Se trata de lo siguiente:
con el trozo de código siguiente, estoy recibiendo un Array bidimensional con una lista de cosas. Ya he comprobado que el array viene bien desde php.
La cosa es que necesito llenar una tabla de HTML con esos resultados. Vi cosas como la siguiente:

1
2
3
4
5
for each (fila in data){
    for each(dato in fila){
       alert (dato)
    }
}

pero no me funciona, no muestra el alert.

Lo más cercano que he logrado es lo siguiente, pero me dice "undefined" para cada campo.
"respuesta" está fuera del array, lo intersante es "data.inventario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
success: function(data)
{
	if (data.respuesta == exito){
		var filas = data.inventario.length;
 
		for (  i = 0 ; i < filas; i++){ //cuenta la cantidad de registros
			var nuevafila= "<tr><td>" +
			data.inventario[i].codigo + "</td><td>" +
			data.inventario[i].nombre + "</td><td>" +
			data.inventario[i].valor + "</td><td>" +
			data.inventario[i].cantidad + "</td><td>" +
			data.inventario[i].categoria + "</td></tr>"
 
			$("#tabla_resultados").append(nuevafila)
		}
	}
}

Cuál es la manera correcta de hacerlo?

Muchas gracias por su atención.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Llenar tabla HTML con Ajax

Publicado por xve (557 intervenciones) el 12/08/2016 09:10:37
Hola Guillermo, a simple vista, parece que esta bien... nos puedes mostrar el contenido de la variable "data"? es para poder probarlo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Llenar tabla HTML con Ajax

Publicado por Guillermo setialfauno@hotmail.com (5 intervenciones) el 12/08/2016 09:56:57
Hola xve, te pegué el resultado y te lo ordené un poco para que veas que está entregando bien. Los dos últimos campos son para conocer y controlar el FOR para las filas.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{"inventario":
[
 
[{"codigo":"500062",
"nombre":"APRETADOR 31 MM.",
"valor":"30",
"cantidad":"0",
"categoria":"MATERIAL DE OFICINA"}],
 
[{"codigo":"500063",
"nombre":"APRETADOR 41 MM.",
"valor":"61",
"cantidad":"0",
"categoria":"MATERIAL DE OFICINA"}],
 
[{"codigo":"500064",
"nombre":"APRETADOR 51 MM.",
"valor":"58",
"cantidad":"0",
"categoria":"MATERIAL DE OFICINA"}],
 
[{"codigo":"500065",
"nombre":"ARCHIVADOR 1\/2 OFICIO LETRAS",
"valor":"1020",
"cantidad":"0",
"categoria":"MATERIAL DE OFICINA"}],
 
[{"codigo":"500184",
"nombre":"APRETADOR 100 MM.",
"valor":"204",
"cantidad":"0",
"categoria":"MATERIAL DE OFICINA"}],
 
[{"codigo":"500189","nombre":"ALFILERES","valor":"172","cantidad":"0","categoria":"MATERIAL DE OFICINA"}]
 
],
 
"n_campos":7,
"respuesta":1}

y todo esto lo devulevo con:

1
echo json_ecode($resultado);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Llenar tabla HTML con Ajax

Publicado por Guillermo (5 intervenciones) el 12/08/2016 10:15:01
listado

en la imagen se ve el resultado que en este momento se devuelve.
como veras, funciona a medias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Llenar tabla HTML con Ajax

Publicado por xve (557 intervenciones) el 12/08/2016 16:49:37
Hola Guillermo, si te fijas, cada elemento del inventario, estar entre [] y entre {}

[{"codigo":"500062",
"nombre":"APRETADOR 31 MM.",
"valor":"30",
"cantidad":"0",
"categoria":"MATERIAL DE OFICINA"}],

Por lo que para acceder a su contenido, tendrás que hacerlo así:
1
2
3
4
5
6
var nuevafila= "<tr><td>" +
data.inventario[i][0].codigo + "</td><td>" +
data.inventario[i][0].nombre + "</td><td>" +
data.inventario[i][0].valor + "</td><td>" +
data.inventario[i][0].cantidad + "</td><td>" +
data.inventario[i][0].categoria + "</td></tr>";

Entiendes el porque de añadir el valor [0] a cada uno?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Llenar tabla HTML con Ajax

Publicado por Guillermo setialfauno@hotmail.com (5 intervenciones) el 13/08/2016 01:55:14
Muchas gracias xve, por fin me funcionó.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Llenar tabla HTML con Ajax

Publicado por Guillermo (5 intervenciones) el 13/08/2016 08:38:01
Quedé corto con los agradecimientos xve, fueron muchas horas de probar y pensar muchas cosas, nunca lo vi tan simple como tu solución.

Muchas Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar