Подскажите! Как сделать Autocomlete - поле?

  • Автор темы HoolyGan
  • Дата начала
H

HoolyGan

#1
Здравствуйте!

Требуется помощь знатоков JavaScript

Суть такая, например у меня в файле или в мускуле есть база марок машин.(или чего нибудь другого)
Необходимо написать скрипт который при вводе в форму на лету выбирал из базы подходящие варианты, и выдавал в виде контекстного меню, и после нажатия на 1 из найденых вариантов, он подставлялся в поле ввода.

Я сделал что-то подобное, но выбор из базы происходит только после нажатия кнопки мыши

Дальше тупик. :)
 
V

Vovochka

#2
Функцию обновления списка надо вешать на событие onkeypress, но в любом случае там еще придеться подумать, как не мучить сервере кучей запросов.
 
R

Rjkz

#3
Я сделал что-то подобное, но выбор из базы происходит только после нажатия кнопки мыши
Можно посмотреть на то что сделали вы? И Какой размер базы запланирован? до милиона записей , свыше ??
 
H

HoolyGan

#4
Размер базы должен быть большой (например, список всех улиц города Новосибирска, ну и т.д.), поэтому обработка должна происходить именно в отдельном скрипте, я точно знаю что это возможно. Есть например библиотека jQuery.autocomplete, но там видимо что-то с кодировкой, немогу разобраться.
Кто знает как прикрутить jQuery, расскажите. Либо надо что-то другое...

А вот то, что сделал я(работает только в ИЕ):
<head>
<style type="text/css">
DIV {background-color: lightgrey}
B {color: blue}
</style>
<script>
function tChange(obj) {
s = new String(obj.value);


streetDSO.Filter=''
streetDSO.Filter+='name='+s+'*'

streetDSO.Reset()
}

</script>
</head>

<object id="streetDSO"
classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="street.txt">
<param name="UseHeader" value="True">
</object>
<form name="form1">
<label>Улица: </label>
<input type="text" name=txt onChange="tChange(this.form.txt)">
</form>



<table id="elemtbl" datasrc="#streetDSO">
<thead><tr>

<td><div id="name"><b>Названия</b></div></td>

</tr></thead>
<tbody>
<tr>
<td><div datafld="name"></div></td>
</tr>
</tbody>
</table>

база хранится в файле street.txt:

name
Малышева
Луначарского
Ленина
Блюхера
Бардина
Шишимская
Уральская
Гагарина
Сулимова
Отрадная