Foros del Web » Programando para Internet » PHP »

alternar color en las filas

Estas en el tema de alternar color en las filas en el foro de PHP en Foros del Web. Hola He encontrado este codigo en internet. $color= ($i%2)? "#FFFFFF" : "#FF6600"; Es la primera vez que he visto algo asi y no se como ...
  #1 (permalink)  
Antiguo 20/03/2008, 10:26
 
Fecha de Ingreso: marzo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
alternar color en las filas

Hola

He encontrado este codigo en internet.

$color= ($i%2)? "#FFFFFF" : "#FF6600";

Es la primera vez que he visto algo asi y no se como interpretarlo aunque se el resultado final.
No se si me explico bien por eso otra vez.

Quiero saber como funciona porque no me interesa copiar a lo tonto. Quiero aprender.

Gracias antemano.

Sky
  #2 (permalink)  
Antiguo 20/03/2008, 10:46
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 7 meses
Puntos: 638
Re: alternar color en las filas

hola, aqui en este ejemplo que esta en las FAQ de PHP explica lo que quieres:
¿Como hago para alternar los colores de las filas de una tabla, como en los foros?

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #3 (permalink)  
Antiguo 20/03/2008, 11:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
De acuerdo Re: alternar color en las filas

Muchas gracias.
Ahora mismo me tengo que ir pero lo mirare luego.
Un saludo cordial.


Sky
  #4 (permalink)  
Antiguo 20/03/2008, 11:12
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: alternar color en las filas

@skyshield, ese trozo de código que pones hace uso de un Operador Aritmético. PHP cuenta con varios tipos de operadores.

El operador que ahí se usa, el %, devuelve el resto (residuo) de una división.

Código PHP:
echo 20 5# 0
echo 20 6# 2
echo 20 7# 6
echo 20 8# 4 
Ahora en el código que tienes, seguro que $i incrementa su valor en 1 en cada ciclo no? ($i++), y lo operas con el 2. Eso es para ver si el número $i es un número par o no (la división entre 2 da como resto 1 o 0). Si da como resto 0 se coloca el primer color que pones, si da como resto 1, el segundo.

Ahora, para evaluar la condición y escoger el color se usa otra sintaxis en tu código, que funciona de la misma manera al if. Revisa este mensaje.

Un saludo,
  #5 (permalink)  
Antiguo 20/03/2008, 12:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Re: alternar color en las filas

Muchissimas gracias.
Me ha ayudado mucho en entender la otra forma de escribir la condicion if.

aunque lo del operador no lo tengo aun muy claro.

Este modulus es para sacar en conclusion el par o impar???

Gracias y saludos,

Sky
  #6 (permalink)  
Antiguo 20/03/2008, 12:30
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: alternar color en las filas

Si lo operas contra 2 si. Osea, es una división, y te da el resto. El primer número antes de % es el dividendo, el segundo es el divisor. A diferencia de la /, que sirve para hallar el resultado exacto de la división, el % sólo te devuelve el residuo.

Un número impar dará como resto 1 al dividirlo entre 2. Un número par devolverá 0. Ese es el criterio para usarlo. En cada ciclo el valor de $i va incrementándose en 1, por lo que su resto al dividirlo entre dos va alternando entre 0 y 1 (par e impar).

Si deseas puedes usar en vez de 2, tres, y ciclar tres colores:

Código PHP:
$color= ($i == 0) ? "#FFFFFF" : (($i == 1) ? "#4499FF" "#FF6600"); 
De esta manera, la fila 1 ($i = 1), al operarlo contra 3, dará como residuo 1, por lo tanto se colocará el 2do color. La fila 2 ($i = 2), tras operarlo, devolverá 2, y se escogerá el última color. Para la fila 3, como es divisible entre 3, devolverá un resto 0, y se colocará el 1er color. A partir de la 4ta fila, el ciclo se repite y los colores ciclan.

Espero que hayas entendido la base de cómo funciona esto.

Saludos,
  #7 (permalink)  
Antiguo 20/03/2008, 12:39
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: alternar color en las filas

Puede hacerlo de esta forma en php

Código PHP:
<?
if ($colorfila==0){
       
$color"#CCCCCC";
       
$colorfila=1;
    }else{
       
$color="#FFCCCC";
       
$colorfila=0;
    }
?>
y en tu tabla pondes
Código HTML:
 bgcolor="<? echo $color;?>"
Recuerda que tiene que estas dentro de while , for donde lo estes generando
  #8 (permalink)  
Antiguo 20/03/2008, 12:56
 
Fecha de Ingreso: marzo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Re: alternar color en las filas

Gracias Okram por alclararmelo mas en profundidad

Y tambien gracias a los demas por aportar otras maneras de como hacerlo.

Saludos a todos,

Sky
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 04:51.