Re: Handling Large Select Boxes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At 08:51 AM 4/7/2006, Brad Bonkoski wrote:
I have a form for user interaction and part of it is a select box with a large number of options from a database ~12K options. Currently I have a function which queries the DB to get fresh data and loads the HTML (<option value=X>Y</option>) into a string, so the DB is only hit once,
but the page still takes a while to load.
Anyone else have any experience with something like this, or any other helpful suggestions for making the page load time a little less cumbersome?


Brad,

If the data and the application permit, you can split the list into a series of nested lists and let the user drill down to the desired item. (If it's a multiple-selection menu, this could get tricky.) If the user can select from one or more category menus to get to the finest granularity of detail, they will have multiple steps to perform but the wait-time on each step will be far less than downloading a 12,000-option list, and therefore the user's perception of wait-time will be less.

There are serious usability issues with very long lists -- for example, the scrollbar button on the list control can become so small that it's difficult to grab, and paging down a few hundred times isn't fun. You can help ameliorate this by ordering the options alphabetically so the user can at least jump to the desired initial letter. Even so, 12,000 / 26 is still 461, a huge number of options to have to scroll through.

Here's one example of a drill-down in which all the category menus remain on the screen:
http://www.dandemutande.org/ResourceGuide/

Paul
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux