Hoàn thành PHP novice ở đây, gần như tất cả công việc trước đây của tôi là trong ASP.NET. Bây giờ tôi đang làm việc trên một dự án PHP, và tảng đá đầu tiên mà tôi đã gặp phải là giữ lại các giá trị trên toàn bộ postback.PHP - Cách thực hành tốt nhất để giữ lại các giá trị biểu mẫu qua postback
Đối với ví dụ đơn giản nhất nhưng vẫn thực tế, tôi có 10 menu thả xuống. Họ thậm chí không databound, vì đó là bước tiếp theo của tôi. Chúng là các trình đơn thả xuống đơn giản.
Tôi có toàn bộ trang được bao gồm trong thẻ. sự kiện onclick() cho mỗi trình đơn thả xuống, gọi một hàm javascript sẽ điền phần tử ẩn thả corrosponding, với giá trị được chọn thả xuống. Sau đó, khi tải lại trang, nếu giá trị ẩn đó không trống, tôi đặt tùy chọn đã chọn = tùy chọn ẩn của tôi.
Điều này rất hữu ích cho một lần đăng lại. Tuy nhiên, khi một trình đơn thả xuống khác được thay đổi, menu thả xuống 1'st ban đầu sẽ mất giá trị của nó, do giá trị ẩn của nó bị mất giá trị mất đi giá trị của nó!
Điều này thu hút tôi xem xét sử dụng chuỗi truy vấn hoặc phiên hoặc ... một số ý tưởng khác.
Ai đó có thể chỉ cho tôi đúng hướng, tùy chọn nào là tốt nhất trong trường hợp của tôi? Tôi là một người mới làm quen với PHP, tuy nhiên tôi đang được yêu cầu làm một số công cụ khá mãnh liệt cho trình độ kỹ năng của mình, vì vậy tôi cần một cái gì đó linh hoạt và thích hợp một chút dễ sử dụng.
Cảm ơn!
----- chỉnh sửa -----
Một chút làm rõ thêm về câu hỏi của tôi :)
Khi tôi nói 'PostBack' Tôi đang đề cập đến các trang/form được gửi. Điều khiển được truyền lại cho máy chủ và mã HTML/PHP được thực hiện lại.
Đối với danh sách thả xuống & hiddens, lý do tôi sử dụng biến ẩn để giữ lại "giá trị đã chọn" hoặc "chỉ mục đã chọn", để khi trang được gửi, tôi có thể vẽ lại menu thả xuống với lựa chọn trước , thay vì mặc định trở lại chỉ mục đầu tiên. Khi tôi sử dụng lệnh $ _POST [], tôi không thể truy xuất danh sách thả xuống theo tên, nhưng tôi có thể truy xuất giá trị ẩn theo tên. Đây là lý do tại sao khi sự kiện thả xuống thay đổi, tôi gọi javascript trong đó đặt giá trị được lựa chọn từ thả xuống vào corrosponding ẩn của nó.
-------- chỉnh sửa lại -------- Được rồi, tôi thấy rằng tôi cần phải lùi lại một bước và giải thích mục tiêu tổng thể :) tôi xin lỗi vì không phải là rất rõ ràng để bắt đầu với.
Thiết kế cuối cùng của tôi sẽ là trang mà người dùng có thể chọn một bộ phận trong công ty của chúng tôi để xem dữ liệu. Khi bộ phận đó được chọn (từ danh sách thả xuống), sau đó tôi sẽ hiển thị nhiều lựa chọn dữ liệu cụ thể hơn cho: màu sắc, kích cỡ, nhà cung cấp, kiểu, ngày, cửa hàng #, v.v ... tại thời điểm này tôi cũng sẽ hiển thị dữ liệu bán hàng cho bộ phận được chọn. Khi chọn bất kỳ màu sắc, kích thước nào, v.v. tôi sẽ cập nhật kết quả dữ liệu bán hàng để đáp ứng các tiêu chí mới
--------- chỉnh sửa ---------- Tôi không thể cung cấp bên ngoài truy cập vào ví dụ của tôi, tuy nhiên đây là một sceenshot với sự bùng nổ. Trong hình ảnh bên dưới, Người dùng sẽ mở rộng danh sách thả xuống của Bộ, để chọn một bộ phận. Tại thời điểm này, dữ liệu bán hàng bên dưới sẽ làm mới theo bộ phận đó. Sau đó, người dùng sẽ chọn tùy chọn "Nhóm theo", chẳng hạn như Cửa hàng và trang/dữ liệu sẽ làm mới để hiển thị dữ liệu được nhóm theo cửa hàng. Sau đó, họ có thể chọn một màu như màu đen trong ví dụ của tôi và dữ liệu sẽ hiển thị doanh số bán hàng cho bộ phận và màu được chọn, được nhóm theo cửa hàng.
Để làm được tất cả điều này tuy nhiên, trang cần phải giữ lại các bộ phận, màu sắc, và các lựa chọn thả xuống nhóm mỗi refresh/bài ...
Chủ đề thú vị. Tuy nhiên, bạn nên giải thích những gì [postback] (http://en.wikipedia.org/wiki/Postback) có nghĩa là; đó là một thuật ngữ ASP, không rõ trong đất PHP. Ngoài ra, hãy thêm thông tin khác nếu bạn cần hiển thị lại danh sách thả xuống hoặc nếu truyền các giá trị qua các trường biểu mẫu ẩn đủ. – mario
tại sao bạn sẽ có một trường ẩn riêng biệt để lưu trữ giá trị của lựa chọn? lựa chọn lưu trữ giá trị của chính nó. tôi rất bối rối. chúng ta có thể thấy một số mã và giải thích về những gì bạn đang cố gắng đạt được không? – dqhendricks
Bạn có thể cung cấp liên kết đến một ví dụ trực tiếp mà tôi có thể hiểu chính xác quy trình – RobertPitt