entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Hacer el código jquery para paginación

Buenas a todos... necesitaría hacer un código desde jquery en la cual tengo dos botones el izquierdo (#izq) y el derecho (#der) en la cual es solo que necesitaría hacer un contador por medio de una variable, lo que se necesita cambiar en el numero de la pagina (http://waybill.hyeride.com/index.php?pagina=variable#info), ahora la pagina comienza directamente del ultimo registro que se hizo, el botón de BACK (#izq) debería restar 1 a dicho presente numero y el botón de NEXT (#der) debería sumar 1 hasta llegar al ultimo. Ahora yo puse este código que en realidad me parece que le faltaría algún tipo de loop

este es el código que tengo hecho con el jquery:

 $('#izq').click(function() {
    var i = i + 1;
    window.open('http://waybill.hyeride.com/index.php?pagina='+i+'#info' ,'_self')
    i++;

  });

  $('#der').click(function() {
    var i = i - 1;
    window.open('http://waybill.hyeride.com/index.php?pagina='+i+'#info' ,'_self')
    i--;
  });

0voto

Peter comentado

Edité el titulo de la pregunta para que tenga algo que ver con tu duda. Por favor evita poner "Tengo una duda" o "Como puedo hacer paginación" "Ayuda con botón", etc... Mejor un título que haga entender a todos cual es la duda :) Código para paginación definitivamente no decía nada y ahora se entiende perfectamente :)

Gracias.

0voto

chirola30 comentado

ok.. gracias por la aclaración.

0voto

daniel_uribe_ayvar comentado

Te sirve el jqGrid?

2 Respuestas

1voto

Deberías hacer uso de los closures de Javascript, es decir, algo como esto:

(function() {
    var i = getValorInicial();
    $("#izq").click(function() {
        i++;
        window.open(...);
    });

    $("#der").click(function() {
        i--;
        window.open(...);
    });
})();

Con esto estarías declarando una función anónima la cual contiene la variable i, la cual debes inicializar con el valor oportuno. En dicha función, además, definimos otras dos funciones anónimas para manejar los eventos de clic. Puesto que estas dos ultimas funciones están contenidas dentro de la primera, tienen acceso a las variables declaradas en la primera función anónima. De esta forma tendrás el valor de la variable actualizado según por donde vayas en la navegación.

PD: no sé si te resultará extraña la notación que he utilizado. En caso de que así fueses podrías usar jQuery:

$(function() {
    var i = getValorInicial();
    ...
});

De esta forma obtendrías el mismo resultado.

Espero que te sirva,

Saludos.

0voto

mrczrt Puntos6940

Hola, yo recomendaria que uses pushstate en lugar de refrescar la pagina, pero si prefieres conservarlo como esta puedes usar una cookie de control para evitarte problemas:

En PHP solo necesitas setear la variable antes de devolver la pagina y que el paginador lo pueda usar:

setcookie("pag", $num_pagina);

con esto ya puedes usarla automaticamente en tu cliente (jQuery) :

$("#izq, #der").click(function() {
var pag_actual = (("; " + document.cookie).split('; pag=')[1].split(';')[0]) || 0,
i = pag_actual + ('izq' === this.id ? -1 : +1);
window.open('http://waybill.hyeride.com/index.php?pagina='+i+'#info' ,'_self')
});

Con esto basta para controlar tu paginación sin necesidad de nadamas en PHP o usar un closure en JS, saludos!.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta