2011-12-15 9 views
5

Pensé en tirar esto solo para ver si alguien ha experimentado este problema y sabe una causa probable/solución de la parte superior de sus cabezas.Los estilos css de Internet Explorer se rompen después de la devolución de datos al referirnos a la página php

Tengo una página PHP que carga una tabla de datos (construida en PHP) con un enlace EDIT que se repite en cada registro. El enlace lo lleva a una página de edición con un ID de usuario y una ID de registro agregados como parámetros a la URL en la página de edición. Una vez que las ediciones se completan y el usuario envía los cambios, se los lleva nuevamente a la página que muestra la tabla de datos de los registros. Todo funciona con éxito, excepto que cuando vuelven a la página de referencia, los DIV ahora están empujados hacia la izquierda en lugar de estar bien centrados, tal como estaban cuando se cargó la página por primera vez. Además, es evidente que algunos de los otros estilos se pierden en el viaje de regreso también. Esto SOLAMENTE sucede en IE (usando IE9), y no en FF o Chrome.

He usado Fiddler y el validador W3C para tratar de reducir el problema, pero mi instinto me dice que es un problema con la forma en que IE almacena las cosas, o es un problema de PHP publicar cosas en la página antes los estilos son aplicados

¿Alguna idea?

Gracias!


resuelto:

Gracias a GolezTrol para el asesoramiento inicial que me llevó en la dirección correcta!

Eché un vistazo más de cerca al HTML y encontré la respuesta justo en la parte superior del documento.

La forma en que esto funciona es cuando se carga PageA.php, el HTML y los estilos se cargan bien y la página no tiene errores. Cuando hizo clic en un enlace EDIT en la tabla de datos, lo llevó a PageB.php, donde la información podría ser editada y enviada a la base de datos, momento en el que se le redirigió de nuevo a PageA.php para ver la tabla actualizada. Cuando PageA.php se cargó de nuevo, la página se arruinó y mis DIV se empujaron al borde izquierdo, y se perdieron algunos estilos.

El error se produjo debido a una alerta de JavaScript que se publica al volver de la Página de referencia que le permite saber que la base de datos se actualizó. El script PHP estaba inyectando esa alerta en el documento antes de la declaración DOCTYPE y el resto del HTML, por lo tanto explotando mi página. Para solucionarlo, simplemente reemplacé la alerta inicial con una variable verdadero/falso y luego coloqué la alerta inyectada de PHP dentro del cuerpo del documento. ¡Todo está bien ahora!

Firefox y Chrome manejaron el error, pero IE9 es mucho más difícil para los programadores malos. :-)

Gracias por todas las respuestas rápidas y consejos!

+2

¿Qué pasa si solo mira la fuente y compara las versiones anterior y posterior en una herramienta como WinMerge? Que el HTML sea válido no significa que sea bueno. O lo mismo, para el caso. – GolezTrol

+0

Voy a probar WinMerge (aunque ya he intentado hacer exactamente eso en Notepad ++). Supongo que mi pregunta para usted es: ¿por qué la página se cargará correctamente en la primera carga, pero luego sus estilos se atornillan cuando se vuelve a publicar desde otra página? ¡Gracias por la respuesta rápida! – gtr1971

+0

simplemente inspeccionaría el elemento en Chrome. pero winmerge suena como si estuvieras haciendo lo mismo. si puede publicar la url, será mucho más fácil ayudar a depurar :) – albert

Respuesta

1

¡Gracias a GolezTrol por los consejos iniciales que me condujeron en la dirección correcta!

Eché un vistazo más de cerca al HTML y encontré la respuesta justo en la parte superior del documento.

La forma en que esto funciona es cuando se carga PageA.php, el HTML y los estilos se cargan bien y la página no tiene errores. Cuando hizo clic en un enlace EDIT en la tabla de datos, lo llevó a PageB.php, donde la información podría ser editada y enviada a la base de datos, momento en el que se le redirigió de nuevo a PageA.php para ver la tabla actualizada. Cuando PageA.php se cargó de nuevo, la página se arruinó y mis DIV se empujaron al borde izquierdo, y se perdieron algunos estilos.

El error se produjo debido a una alerta de JavaScript que se publica al volver de la Página de referencia que le permite saber que la base de datos se actualizó. El script PHP estaba inyectando esa alerta en el documento antes de la declaración DOCTYPE y el resto del HTML, por lo tanto explotando mi página. Para solucionarlo, simplemente reemplacé la alerta inicial con una variable verdadero/falso y luego coloqué la alerta inyectada de PHP dentro del cuerpo del documento. ¡Todo está bien ahora!

Firefox y Chrome manejaron el error, pero IE9 es mucho más difícil para los programadores malos. :-)

Gracias por todas las respuestas rápidas y consejos!

Cuestiones relacionadas