| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Быстрый подбор |
| Автор: Date 13.4.2009, 09:26 | ||
| Добрый день! Столкнулся со следующей проблемой: Есть таблица в MySQL в ней количество записей переросло за 26 000. В web-форму данные из этой таблицы попадают следующим образом
Передается 1.6 Мб. Это очень долго особенно если клиент сидит на dial-up’е. Предполагаю сделать так, положить на форму: <input type="text" name="name" size="20"> Когда пользователь вводит туда название в <select> попадают те записи первые символы которых соответствуют в веденным в <input>. Но знаний по JS нет совсем. и как решить проблему не знаю, время жмет. Заранее благодарю! |
| Автор: comtat 13.4.2009, 09:33 |
| А если просто сделать постраничный вывод ??? |
| Автор: Date 13.4.2009, 09:38 |
я делал но там очень много страниц получатся. пользователи ругаются. |
| Автор: Michael.de 13.4.2009, 22:46 |
| Date, требуется просто прочитать значение <input> и передать на сервер или что-то ещё? Посмотри, может эта тема пригодится: http://forum.vingrad.ru/topic-237800.html |
| Автор: Date 14.4.2009, 09:55 | ||||||
| Michael.de, я посмотрел ваш пример. переделал его под свои нужды получилось вот что: сначала заполняем массив:
далее функция поиска:
вставляю <input id='f' onkeyup='getList();' size="20"> страница грузиться быстро и все работает как надо. НО если я делаю поиск например по 500 элемент, страница подвисает. может можно выйти из этой ситуации? |
| Автор: Michael.de 14.4.2009, 16:51 | ||||
| Date, я уже совсем запутался: 1. строки 11-16 из твоего последнего листинга для чего нужны? У меня они служили только для того, чтобы сгенерировать alert() для юзера... массив получался замечательно и без них 2.
Предлагаю следующее: юзер ввёл что-то в поле ввода. Из БД достаются все подходящие к первой букве (знаку) записи и отсылаются юзеру (как массив значений). На его компьютере (в соответствии с напечатанным в инпуте) к уже существующему select-у добавляются option-ы со значениями из array. Если юзер стёр всё написанное (изменился первый знак в инпуте) - запрашивается новый массив. Как из уже существующего массива достать нужные нам значения - я показал в том примере. Вот пример для добавления option-ов к select-y:
P.S. Исправил ф-цию showSelect() - перед добавлением новых option-ов необходимо было удалить уже существующие |