2011-12-15 38 views
5

Tôi nghĩ tôi sẽ ném nó ra để xem liệu có ai gặp vấn đề này hay không và biết nguyên nhân có thể xảy ra.Các phong cách css của Internet Explorer bị gián đoạn sau khi tham khảo trang php

Tôi có trang PHP tải bảng dữ liệu (được xây dựng bằng PHP) với liên kết EDIT được lặp lại trên mỗi bản ghi. Liên kết sẽ đưa bạn đến trang chỉnh sửa có ID người dùng và ID bản ghi được thêm làm tham số cho URL trong trang chỉnh sửa. Sau khi chỉnh sửa hoàn tất và người dùng gửi các thay đổi, họ sẽ được đưa trở lại trang hiển thị bảng dữ liệu bản ghi. Mọi thứ hoạt động thành công ngoại trừ khi chúng được trả về trang giới thiệu, các DIV giờ đây được đẩy sang bên trái thay vì độc đáo ở giữa khi chúng được tải lần đầu tiên. Ngoài ra, rõ ràng là một số phong cách khác cũng bị mất trong chuyến đi về. Điều này chỉ xảy ra trong IE (sử dụng IE9), và không phải trong FF hoặc Chrome.

Tôi đã sử dụng Fiddler và trình xác nhận W3C để thử và thu hẹp sự cố, nhưng ruột của tôi cho tôi biết đó là vấn đề về cách IE lưu trữ mọi thứ hoặc đó là vấn đề về PHP đăng tải lại trang trước các kiểu được áp dụng.

Bất kỳ suy nghĩ nào ??

Cảm ơn!


SOLVED:

Nhờ GolezTrol cho những lời khuyên ban đầu mà dẫn tôi đi đúng hướng!

Tôi đã xem xét kỹ hơn HTML và tìm thấy câu trả lời ngay ở đầu tài liệu.

Cách thức hoạt động này là khi PageA.php được tải, HTML và kiểu được tải tốt và trang không có lỗi. Khi bạn nhấp vào liên kết EDIT trong bảng dữ liệu, nó đưa bạn đến PageB.php nơi thông tin có thể được chỉnh sửa và gửi lại cho cơ sở dữ liệu, tại thời điểm đó bạn được chuyển hướng trở lại PageA.php để xem bảng đã cập nhật. Khi PageA.php được tải lại, trang đã bị hỏng và các DIV của tôi bị đẩy sang biên trái, và một số kiểu bị mất.

Lỗi xảy ra do cảnh báo javascript đăng khi trở về từ Trang giới thiệu cho phép bạn biết cơ sở dữ liệu đã được cập nhật. Kịch bản PHP đã tiêm cảnh báo đó vào tài liệu trước khi khai báo DOCTYPE và phần còn lại của HTML, do đó thổi lên trang của tôi. Để khắc phục nó, tôi chỉ thay thế cảnh báo ban đầu bằng một biến true/false, và sau đó đặt cảnh báo PHP được tiêm vào bên trong phần thân của tài liệu. Tất cả là tốt ngay bây giờ!

Firefox và Chrome đã xử lý lỗi, nhưng IE9 khó hơn nhiều đối với các lập trình viên xấu. :-)

Cảm ơn tất cả các câu trả lời và lời khuyên nhanh!

+2

Điều gì sẽ xảy ra nếu bạn chỉ xem xét nguồn và so sánh các phiên bản trước và sau trong một công cụ như WinMerge? HTML là hợp lệ không có nghĩa là nó tốt. Hoặc như vậy, cho rằng vấn đề. – GolezTrol

+0

Tôi sẽ thử WinMerge (mặc dù tôi đã thử thực hiện chính xác điều đó trong Notepad ++). Tôi đoán câu hỏi của tôi với bạn sau đó là: Tại sao trang tải chính xác trên lần tải đầu tiên, nhưng sau đó các kiểu của nó bị vặn khi đăng lại từ một trang khác? Cảm ơn bạn đã phản hồi nhanh! – gtr1971

+0

tôi sẽ chỉ kiểm tra phần tử trong Chrome. nhưng winmerge có vẻ như bạn đang làm điều tương tự. nếu bạn có thể đăng url, dễ dàng hơn để giúp gỡ lỗi :) – albert

Trả lời

1

Nhờ GolezTrol cho lời khuyên ban đầu đã dẫn tôi đi đúng hướng!

Tôi đã xem xét kỹ hơn HTML và tìm thấy câu trả lời ngay ở đầu tài liệu.

Cách thức hoạt động này là khi PageA.php được tải, HTML và kiểu được tải tốt và trang không có lỗi. Khi bạn nhấp vào liên kết EDIT trong bảng dữ liệu, nó đưa bạn đến PageB.php nơi thông tin có thể được chỉnh sửa và gửi lại cho cơ sở dữ liệu, tại thời điểm đó bạn được chuyển hướng trở lại PageA.php để xem bảng đã cập nhật. Khi PageA.php được tải lại, trang đã bị hỏng và các DIV của tôi bị đẩy sang biên trái, và một số kiểu bị mất.

Lỗi xảy ra do cảnh báo javascript đăng khi trở về từ Trang giới thiệu cho phép bạn biết cơ sở dữ liệu đã được cập nhật. Kịch bản PHP đã tiêm cảnh báo đó vào tài liệu trước khi khai báo DOCTYPE và phần còn lại của HTML, do đó thổi lên trang của tôi. Để khắc phục nó, tôi chỉ thay thế cảnh báo ban đầu bằng một biến true/false, và sau đó đặt cảnh báo PHP được tiêm vào bên trong phần thân của tài liệu. Tất cả là tốt ngay bây giờ!

Firefox và Chrome đã xử lý lỗi, nhưng IE9 khó hơn nhiều đối với các lập trình viên xấu. :-)

Cảm ơn tất cả các câu trả lời và lời khuyên nhanh!

Các vấn đề liên quan