Foros del Web » Programando para Internet » Jquery »

jQuery | Paginar resultados (vía AJAX) en tablas y/o parsear JSON

Estas en el tema de jQuery | Paginar resultados (vía AJAX) en tablas y/o parsear JSON en el foro de Jquery en Foros del Web. Estoy realizando una consulta al servidor mediante un formulario y mi idea es presentar los resultados en una tabla por resultado (información relacionada), pero como ...
  #1 (permalink)  
Antiguo 24/02/2009, 14:55
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
jQuery | Paginar resultados (vía AJAX) en tablas y/o parsear JSON

Estoy realizando una consulta al servidor mediante un formulario y mi idea es presentar los resultados en una tabla por resultado (información relacionada), pero como son varios resultados la idea es paginar esas tablas.

Mi duda, en resumen, es cómo poder hacerlo .

Actualmente el formulario se está enviando en segundo plano (AJAX) y ahora estoy regresando la tabla como tal, parseando por cada resultado un código como este:
Código html:
Ver original
  1. <div id="idResult-numeroGeneradoDinamicamente">
  2. <table class="tableResult">
  3.   <caption>Viendo resultado XX de YYY</caption>
  4.   <thead>
  5.     <th> </th>
  6.     <th>Nombre(s)</th>
  7.     <th>Apellido paterno</th>
  8.     <th>Apellido materno</th>
  9.   </thead>
  10.  
  11.   <tfoot>
  12.     <tr>
  13.       <td colspan="4">
  14.         <button type="button">Seleccionar</button>
  15.       </td>
  16.     </tr>
  17.   </tfoot>
  18.  
  19.   <tbody>
  20.     <tr>
  21.       <th>Persona1: </th>
  22.       <td>XXXXXXXXXXX</td>
  23.       <td>XXXXXXXXXXX</td>
  24.       <td>XXXXXXXXXXX</td>
  25.     </tr>
  26.     <tr>
  27.       <th>Persona 2: </th>
  28.       <td>XXXXXXXXXXX</td>
  29.       <td>XXXXXXXXXXX</td>
  30.       <td>XXXXXXXXXXX</td>
  31.     </tr>
  32.     <tr>
  33.       <th>Persona 3: </th>
  34.       <td>XXXXXXXXXXX</td>
  35.       <td>XXXXXXXXXXX</td>
  36.       <td>XXXXXXXXXXX</td>
  37.     </tr>
  38.   </tbody>
  39. </div>

Que visualmente genera algo como esto:



Con esto, estoy teniendo problemas para paginar dichas tablas. Primero porque me he dado cuenta que así, regresando HTML, los eventos previamente declarados no son asociados con el "nuevo código"; esto es, que si antes declaré algo como $('.tableResult').click( // etc ); y le doy click a alguna tabla del resultado (que corresponde con la clase), el evento no es lanzado.

He ahí el primer planteamiento: ¿cómo "solucionar esto"?; ¿regresar igual código javascript y 'cargarlo' --con eval()--?, ¿algo como 'recargar' una función previamente declarada? ... no sé, ni idea.

Por otra parte, esto lo tengo así por tomar código ya hecho, sin embargo, ¿qué tan mejor sería la opción de regresar un arreglo de objetos JSON para parsearlos y generar el contenido dinámicamente?; más importante ¿cómo hacerlo?

Estoy utilizando Form Plugin, puedo recuperar mi resultado sin problema pero no sé como generar las tablas y tratarlas para su paginación.

El código, por si fuese necesario, es:
Código javascript:
Ver original
  1. var options = {
  2.                 target : '#results',
  3.                 beforeSubmit: function() {
  4.                      // Supongo esto igual se puede hacer de una  manera más elegante.
  5.                      $('#results').html('<div id="indicadorBuscando"><img alt="buscando..." src="img/cargando.gif"></div>');
  6.                 },
  7.                 success: mostrarResultados, // callback a función mostrarResultados
  8.                 dataType : 'json'
  9.             };
  10.  
  11. // Envio el formulario, recibo respuesta y es pasada a la función mostrarResultados
  12.  
  13. function mostrarResultados(data) {
  14.     // Y data es el resultado en formato JSON, pero aquí no sé como generar las tablas
  15. }

Respecto a esta última manera, he encontrado un código pero que honestamente no entiendo bien, como en la declaración de esta variable:
Código javascript:
Ver original
  1. var $table = $('<table/>');
¿esta creando un nuevo elemento ahí? ... No había visto antes algo como $variable .

Como siempre, cualquier comentario, sugerencia, enlace, ejemplo es agradecido de antemano.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #2 (permalink)  
Antiguo 25/02/2009, 11:21
Avatar de TresPuntoDos  
Fecha de Ingreso: septiembre-2008
Ubicación: Madrid, España
Mensajes: 242
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: jQuery | Paginar resultados (vía AJAX) en tablas y/o parsear JSON

Cita:
Iniciado por jam1138 Ver Mensaje
He ahí el primer planteamiento: ¿cómo "solucionar esto"?; ¿regresar igual código javascript y 'cargarlo' --con eval()--?, ¿algo como 'recargar' una función previamente declarada? ... no sé, ni idea.
Aqui tu solucion es facil, en el callback de la llamada, es decir, en tu funcion mostrarResultados, cuando hayas creado todo el html nuevo en tu pagina puedes hacer un $("tabla").click(function);

Cita:
Iniciado por jam1138 Ver Mensaje
Por otra parte, esto lo tengo así por tomar código ya hecho, sin embargo, ¿qué tan mejor sería la opción de regresar un arreglo de objetos JSON para parsearlos y generar el contenido dinámicamente?; más importante ¿cómo hacerlo?
Hay una ley que yo siempre aplico, si algo funciona, no lo toques
Se podria hacer pero te llevara tiempo y muchos quebraderos de cabeza, primero para que tu servidor devuelva bien los datos y luego para que tu los parsees bien

Cita:
Iniciado por jam1138 Ver Mensaje
Estoy utilizando Form Plugin, puedo recuperar mi resultado sin problema pero no sé como generar las tablas y tratarlas para su paginación.
Si estas devolviendo HTML no uses dataType : 'json'

Cita:
Iniciado por jam1138 Ver Mensaje
Código javascript:
Ver original
  1. var $table = $('<table/>');
¿esta creando un nuevo elemento ahí? ... No había visto antes algo como $variable .
Efectivamente, eso crea una tabla nueva en el html
__________________
Tres punto Dos - Mi Blog sobre J2EE, Java, Struts y Diseño Web
Proyecto BloJ - Crea tu blog Java
  #3 (permalink)  
Antiguo 25/02/2009, 17:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: jQuery | Paginar resultados (vía AJAX) en tablas y/o parsear JSON

Cita:
Iniciado por TresPuntoDos Ver Mensaje
Aqui tu solucion es facil, en el callback de la llamada, es decir, en tu funcion mostrarResultados, cuando hayas creado todo el html nuevo en tu pagina puedes hacer un $("tabla").click(function);
Gracias; no se me había ocurrido . Sí, fue fácil y con eso soluciono mi problema .


Cita:
Iniciado por TresPuntoDos Ver Mensaje
Hay una ley que yo siempre aplico, si algo funciona, no lo toques
Igual lo aplico, pero no como ley. Soy más curioso y de buscar como mejorar las cosas siempre que se pueda


Cita:
Iniciado por TresPuntoDos Ver Mensaje
Si estas devolviendo HTML no uses dataType : 'json'
Eso lo puso porque, en ese caso, sí estoy devolviendo el tipo de dato JSON. Realmente "armarlo" no es nada complicado, es más sencillo que parsear y crear el HTML ... y veo que al tratar de armar las tablas solo es de acceder a sus atributos una y otra vez ... pero por ahora no lo aplico, prefiero gastar tiempo de carga que procesador del cliente.


Cita:
Iniciado por TresPuntoDos Ver Mensaje
Efectivamente, eso crea una tabla nueva en el html
¿Algún enlace a la documentación?, ¿esto es particular de jQuery o es algo de JavaScript --si, no soy nada experimentado con lo que sucede en el lado del cliente :-/--.

Gracias por tu ayuda .

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 05/03/2009, 09:20
Avatar de TresPuntoDos  
Fecha de Ingreso: septiembre-2008
Ubicación: Madrid, España
Mensajes: 242
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: jQuery | Paginar resultados (vía AJAX) en tablas y/o parsear JSON

En la pagina http://docs.jquery.com esta toda la documentacion, hay cosas que no vienen pero tienen un foro donde hacer preguntas y donde se aprende mucho
__________________
Tres punto Dos - Mi Blog sobre J2EE, Java, Struts y Diseño Web
Proyecto BloJ - Crea tu blog Java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:36.