Foros de daboweb
MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: kyokurider en 03 de Abril de 2006, 06:11:52 pm
-
Buenas,
Tengo una página en php en la que mostrar un listado mediante una tabla, esto lo hago con un bucle for.
Ahora bien, tengo una función para alternar el color de cada fila;
$tablerow_count=0;
function tablerowswitch() {
global $tablerow_count;
$tablerow_count++;
if ($tablerow_count % 2) {
echo 'class="odd"';
}
else {
echo 'class="even"';
}
}
Esta está definida en la mismas página, y la llamada a la misma sería dela siguiente forma:
echo '<tr '.tablerowswitch().' align="center" >';
Ahora bien el resultado de esto es que me devuelve el resultado pero aparece colocado fuera de la tabla con lo cual no se aplica el estilo indudablemente. Si miro el código de la página una vez cargada dando el error veo esto:
class="odd"<tr align="center" ><td>
de forma que el valor que me ha devuelto me lo pone delante de la etiqueta tr y no en su interior como creo que debería ser..., alguien sabe porque??, si me ha entendido.....(no se si me explico) :dabo:
gracias,
-
Estás usando mal las comillas. Eso que pretendes se hace con comillas dobles metiendo escapes cuando te interesa meter comillas como parte del texto. Además, no creo que meter la función directamente sea buena idea. Crea una nueva variable que obtenga el valor de la función y úsala.
-
gracias por la respuesta Halo,
he probado a meter el resultado de la función en una variable y concatenar esta de la siguiente forma,
echo '<tr '.$clase.' align="center" >';
pero el resultado es exactamente el mismo me imprime en pantalla la información de la variable fuera de la tabla, arriba del todo tal que así:
class="odd"class="even"class="odd"class="even"class="odd"class="even"class="odd"class="even"class="odd"class="even"class="odd"class="even"class="odd"class="even"class="odd"class="even"class="odd"class="even"class="odd"class="even"
12345 Next Last
Reference Name Area Type Hot property Status
Fe/Largo Apartment Residential Apartment Disable Enable Modify Delete Photo
FE/Park Towers Park Towers Park Boulevard Apartment Disable Enable Modify Delete Photo
-
ya está arreglado, al final lo he hecho más fácil,
if ($i % 2 ==1) {
$clase = 'even';
}else {
$clase = 'odd';
}
justo después de la sentencia for, y concatenar la variable con la cadena como anteriormente...
:fumando:
-
¿Cómo estás haciendo el 'for'? ¿Puedes mostrarlo? Es que dado el resultado da la sensación de que has metido un bucle dentro de otro bucle o algo así.
Además sigo apostando, en tu caso, por comillas dobles con escapes en las que forman parte de la cadena. :-d
-
Cruzada, ahora sé de qué me avisaban las letras rojas. :smoke:
;-)
-
aquí está, era una gilipollez y por no pensar ya ves con lo fácil que era
for($i=0;$i<$NFilas;$i++) {
// alternar el color de las tablas
if ($i % 2 ==1) {
$clase = 'even';
}else {
$clase = 'odd';
}
$ResultQuery = mysql_fetch_array($lanza);
echo '<tr class="'.$clase.'" align="center">';