2011-12-15 12 views
5

Ho pensato di buttarlo lì solo per vedere se qualcuno ha riscontrato questo problema e conosce una probabile causa/risolva il problema.Gli stili css di Internet Explorer si interrompono dopo il postback dalla pagina php di riferimento

Ho una pagina PHP che carica una tabella di dati (costruita in PHP) con un collegamento EDIT che viene echeggiato su ogni record. Il collegamento porta a una pagina di modifica con un ID utente e un ID record aggiunti come parametri all'URL nella pagina di modifica. Una volta completate le modifiche e l'utente invia le modifiche, vengono riportate alla pagina che mostra la tabella dei dati dei record. Tutto funziona correttamente, tranne quando tornano alla pagina di riferimento, i DIV vengono ora spostati a sinistra anziché centrati come erano quando la pagina è stata caricata per la prima volta. Inoltre, è evidente che alcuni degli altri stili sono persi nel viaggio di ritorno. Questo accade SOLO in IE (usando IE9), e non in FF o Chrome.

Ho usato Fiddler e il validatore W3C per provare a restringere il problema, ma il mio istinto mi sta dicendo che è un problema con come IE memorizza le cose nella cache, oppure è un problema di goofy in PHP che riporta roba nella pagina prima gli stili sono applicati

Qualche idea ??

Grazie!


risolto:

Grazie alla GolezTrol per i consigli iniziale che mi ha portato nella direzione giusta!

Ho dato un'occhiata più da vicino all'HTML e ho trovato la risposta nella parte superiore del documento.

Il modo in cui funziona è quando PageA.php è stato caricato, l'HTML e gli stili sono stati caricati correttamente e la pagina non ha avuto errori. Quando hai fatto clic su un collegamento EDIT nella tabella dati, ti ha portato a PageB.php dove le informazioni potevano essere modificate e inviate al database, a quel punto sei stato reindirizzato a PageA.php per vedere la tabella aggiornata. Quando PageA.php è stato caricato di nuovo, la pagina è stata distrutta ei miei DIV sono stati spostati sul bordo sinistro e alcuni stili sono stati persi.

L'errore si verificava a causa di un avviso javascript che indica quando si torna dalla pagina di riferimento che consente di sapere che il database è stato aggiornato. Lo script PHP stava iniettando quell'avviso nel documento prima della dichiarazione DOCTYPE e del resto dell'HTML, quindi faceva saltare in aria la mia pagina. Per risolvere il problema, ho appena sostituito l'avviso iniziale con una variabile vero/falso, quindi ho inserito l'avviso iniettato in PHP all'interno del corpo del documento. Tutto è buono ora!

Firefox e Chrome hanno gestito l'errore, ma IE9 è molto più difficile per i programmatori cattivi. :-)

Grazie per tutte le risposte rapide e consigli!

+2

Cosa succede se si guarda la fonte e si confrontano le versioni precedenti e successive in uno strumento come WinMerge? Che l'HTML sia valido non significa che sia buono. O lo stesso, del resto. – GolezTrol

+0

Proverò WinMerge (anche se ho già provato a farlo esattamente in Notepad ++). Immagino che la mia domanda a voi sia: Perché la pagina dovrebbe caricarsi correttamente al primo caricamento, ma poi i suoi stili si rovinano quando si rinvia da un'altra pagina? Grazie per la risposta veloce! – gtr1971

+0

vorrei semplicemente ispezionare l'elemento in Chrome. ma Winmerge sembra che tu stia facendo la stessa cosa. se riesci a pubblicare l'url, sii molto più semplice per aiutare il debug :) – albert

risposta

1

Grazie a GolezTrol per il consiglio iniziale che mi ha portato nella giusta direzione!

Ho dato un'occhiata più da vicino all'HTML e ho trovato la risposta nella parte superiore del documento.

Il modo in cui funziona è quando PageA.php è stato caricato, l'HTML e gli stili sono stati caricati correttamente e la pagina non ha avuto errori. Quando hai fatto clic su un collegamento EDIT nella tabella dati, ti ha portato a PageB.php dove le informazioni potevano essere modificate e inviate al database, a quel punto sei stato reindirizzato a PageA.php per vedere la tabella aggiornata. Quando PageA.php è stato caricato di nuovo, la pagina è stata distrutta ei miei DIV sono stati spostati sul bordo sinistro e alcuni stili sono stati persi.

L'errore si verificava a causa di un avviso javascript che indica quando si torna dalla pagina di riferimento che consente di sapere che il database è stato aggiornato. Lo script PHP stava iniettando quell'avviso nel documento prima della dichiarazione DOCTYPE e del resto dell'HTML, quindi faceva saltare in aria la mia pagina. Per risolvere il problema, ho appena sostituito l'avviso iniziale con una variabile vero/falso, quindi ho inserito l'avviso iniettato in PHP all'interno del corpo del documento. Tutto è buono ora!

Firefox e Chrome hanno gestito l'errore, ma IE9 è molto più difficile per i programmatori cattivi. :-)

Grazie per tutte le risposte rapide e consigli!

Problemi correlati