2010-08-03 24 views
6

Trong phần quản trị của tôi, khi tôi chỉnh sửa các mục, tôi phải đính kèm từng mục vào một mục cha. Tôi có danh sách hơn 24.000 mục cha, được liệt kê theo thứ tự bảng chữ cái trong danh sách thả xuống (danh sách các nghệ sĩ âm nhạc).Giải pháp thay thế cho danh sách thả xuống lớn (24.000+ mục)

Trang chỉnh sửa liệt kê tất cả các mục này trong trình đơn thả xuống là 2MB và nó giống như điên cho những người có máy cũ, đặc biệt là trong Internet Explorer.

Làm cách nào tốt để sao chép cùng một chức năng, nơi tôi sẽ cần chọn 1 trong 24.000 nghệ sĩ này, mà không thực sự có tất cả chúng được tải sẵn vào trình đơn thả xuống.

Trả lời

3

Thay vì phải điền một danh sách thả với rất nhiều tên tuổi bạn có thể:

  1. Tạo một cơ chế tìm kiếm đơn giản, nơi bạn có phù hợp với sự bắt đầu của một tên
  2. Make sử dụng các danh mục (nếu có) và nhiều hộp tổ hợp để thu hẹp lựa chọn
  3. Tương tự như trên, một số loại cấu trúc cây có phân cấp phân loại
  4. Phím tắt kiểm soát nơi có liên kết hoặc nút cho chữ cái của bảng chữ cái (meta-category)

Tất nhiên, điều này phụ thuộc vào chồng bạn đang triển khai, ví dụ: bạn đang sử dụng AJAX hay jQuery, truy cập vào một db/loại.

1

Sử dụng jquery (hoặc tương tự) có nhiều menu thả xuống tự động hoàn tất khả dụng. Ví dụ:

http://docs.jquery.com/Plugins/Autocomplete

+1

Đó cũng là những gì tôi đang nghĩ. là có một cách để mã hóa ID vào nó bằng cách nào đó? bởi vì những gì tôi thích về trình đơn thả xuống, là có một giá trị (id) và văn bản thực tế (tên nghệ sĩ). –

+0

Yegor, nó phụ thuộc vào cách bạn làm điều đó. Bạn luôn có thể sáng tạo. Ví dụ: nếu kết quả được trả về dưới dạng danh sách không có thứ tự, bạn có thể lưu trữ id của mình trong thẻ tiêu đề của danh sách và sau đó chỉ cần tìm nạp nó bằng một cái gì đó như $ (this) .attr ('title'). – blcArmadillo

0

Giả sử người dùng có một số ý tưởng về những gì họ đang tìm kiếm (trong trường hợp này là một nghệ sĩ), tôi nghĩ hộp văn bản tự động hoàn thành sẽ là tốt nhất. Cách tiếp cận này sẽ loại bỏ các vấn đề tải ban đầu của bạn cung cấp cho việc triển khai AJAX-y rõ ràng mà người dùng có xu hướng ưu tiên trong những ngày này. Ngoài ra, vì bạn đang xử lý tên nghệ sĩ, bạn có thể muốn bao gồm điều khiển "bảng chữ cái" cho phép người dùng giảm danh sách nghệ sĩ bằng lần đầu tiên ban đầu (đầu tiên và/hoặc cuối cùng). Tôi đã nhìn thấy điều này được thực hiện khá hiệu quả với một siêu liên kết cho mỗi chữ cái. Cách tiếp cận tương tự có thể được thực hiện với một trình đơn thả xuống bao gồm tất cả các chữ cái trong bảng chữ cái tự động tải một trình đơn thả xuống của nghệ sĩ được lọc dựa trên lựa chọn.

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