Comunidad de diseño web y desarrollo en internet online

Mostrar nº de objetos mostrados de un array

Citar            
MensajeEscrito el 05 Ene 2014 12:08 am
Hola, tengo un array y muestro los objetos en filas y columnas a través de varias páginas y necesito que en cada página me diga el nº de objetos mostrados hasta esa página, me explico, si tengo un array con 11 objetos y los muestro en 2 filas y 2 columnas en la primera página me pondrá 4 en la segunda página me pondrá 8 pues en la 3 me tiene que poner 11 y no consigo que en la última página se de cuenta de que tiene que contar 3 elementos sólo y no los 4, cuando los mostraba en una sóla columna no había ningún problema le ponía i y ya está, pero al añadirle las columnas no sé como hacerlo

Código Javascript :

var nombre= new Array();            
nombre= [["pepe"],
              ["antonio"],
              ["luis"],
              ["mariano"]];         

var filas = 2;
var col = 2;

for(var i = pointer; i < pointer + counter && i < array.length ; i++)
/*el pointer y counter es para el manejo de los botones de siguiente, atrás*/

document.getElementById("nombre").innerHTML = "<table><tr><td>" + i + "</td></tr></table>

Por pedromir

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 06 Ene 2014 11:32 pm
Un paginador en JS.

Hac eun rato un miembro de aqui tuvo un problema similar, qui el ejemplo

http://jsfiddle.net/elporfirio/DVYFe/

Solo coloca la inicial ;) de los nombre par auqe te aparescan reusltados y ver como funciona.

Saludos

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 07 Ene 2014 10:44 am
Hola, mi problema no está a la hora de mostrar los objetos del Array, ni con el funcionamiento de los botones, excepto con el botón de ir a la última página, porque me aparecen perfectamente en las filas y columnas que tengo establecidas en las variables filas y col.
Lo que necesito es que a través de un innerHTML me muestre en una tabla el Número de objetos totales, en este caso nombres, según el ejemplo 11 y esto funciona bien y el Número de objetos de la página actual, en la que estoy, pero sumando los que llevamos mostrados de las páginas anteriores, este sería el ejemplo de la parte de la tabla donde muestro esos datos.
<td><span>" + i + "</span>&nbsp; de &nbsp;<strong>" + array.length + "</strong> &nbsp;Nombres en total</td>
Y el problema lo tengo cuando estoy en la última página, porque la página ya no está completa, sólo tiene 3 objetos en vez de cuatro como en el resto y no encuentro la manera de decirle que en esa página me cuente los 3 además tiene que funcionar correctamente cuando yo le cambie el número de filas y/o de columnas

Saludos

Por pedromir

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 07 Ene 2014 02:48 pm
Eso viene en el ejemplo que te puse ¬¬

hay una variable que se llama:

var $limite_resultados = 3;

Esa se cambia para mostrar los resultados... puede ser 2, 3 4 5 etc por página.

La funcion calcular paginas, y la funcion irsiguiente e ir anterior son las funciones que hacen eso que dices.

La recomendación es "aclara tu logica" y de ahi se te apoya con el codigo :3

Saludos.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 07 Ene 2014 07:34 pm
Estas son las funciones que utilizo para ir hacia adelante o hacia atrás, ahora lo que necesito es mostrar el número de objetos que llevo mostrados hasta la página actual, en la que me encuentro.

Código Javascript :

    this.canNext = function()
   {
   /*calcula el número de filas totales, y calcula el número de filas que quedan por mostrar,
   si es más de 0 habilita next y si no lo deshabilita*/
        
   var filasTotal= Math.ceil(array.length/col);
   var filasRest = filasTotal - (pointer+counter); 
   return (filasRest>0) ;            
    }

    this.next = function()
    {    
        if (self.canNext())
        {
            pointer += counter;
            self.show();
        }
    }

    this.canPrevious = function()
    {
        return (pointer >= counter);    
    }

    this.previous = function()
    {
        if (self.canPrevious())
        {
            pointer -= counter;
            self.show();
        }
    }

Por pedromir

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 07 Ene 2014 11:20 pm
mmm y si llevas la cuenta de cuantos se van mostrando?

var filasMostradas = filasActuales + (pointer+counter);


Si le haces anterior

filasMostradas =- counter;

Si le haces siguiente

filasMostradas =+ counter;



SI haces un Jsfiddle te puedo apoyar en codigo funcional.

Saludos

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 08 Ene 2014 11:55 am
La solución que tu propones valdría para el caso de que mostrara los objetos en una sóla columna o si en la última página estuvieran completas las dos columnas, pero en el caso del ejemplo, en la última página estaría la primera columna con dos objetos y la segunda tendría uno sólo en la primera columna y la segunda estaría vacía y con tu propuesta como solo cuenta filas en la última página contaría 4 elementos en vez de 3 eso serviría para contar el número de página por ejemplo, pero no de objetos que es lo que yo necesito.
En cuanto al hacer un Jsfiddle déjame que lo prepare, porque antes tengo que solucionar algun otro problemilla con la página.
Saludos

Por pedromir

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 08 Ene 2014 12:08 pm
Ya aprovecho para comentarte otro problema que tengo y que no consigo resolver y que tiene que ver con lo anterior, todos los botones funcionan correctamente menos el de ir a la última página, que en función de la combinación que tengas puesta entre columnas y filas funciona bien o no, en el caso del ejemplo, 4 filas 2 columnas y 11 objetos funciona perfectamente, pero en otros casos, la última página me aparece vacía, el problema en los 2 casos son las columnas, que no consigo que las tenga en cuenta correctamente, antes de meterle las columnas y mostrar los objetos en filas solamente, me funcionaba todo perfectamente, pero al meter las columnas he tenido que modificar el código de algunos botones y he conseguido que ya me funcionan bien, menos este.

Código Javascript :

     this.canLast = function()
{   
     var filasTotal= Math.ceil(array.length/(col*filas))
     var filasRest = filasTotal + (pointer+counter); 
     return (filasRest) ;      
} 
   
    this.last = function()
    {    
        if (self.canLast())
        {
            pointer += counter;
            self.show();
        }
    }




Por pedromir

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 09 Ene 2014 07:49 pm
Hola, ya te lo he puesto en jsfiddle.net/Z93V3/
Perdona por haber tardado, pero he estado liado con otras cosas, como verás cuando lo pruebes, si pinchas en ir a la última página, te lleva a la penúltima y tienes que volver a pinchar para que vaya a la última, en otras combinaciones entre filas y columnas te lleva a 1 o más páginas posteriores a la última y por tanto aparecen vacías, hay otras veces que lo hace bien, así que le falta ajustar el código.
En cuanto al tema del innerHTML para contar las fotos verás que no lo hace correctamente.
Te agradecería que me echaras una mano.
Saludos

Por pedromir

29 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.