PDA

Просмотр полной версии : Как сделать динамическое автозаполнение?


GRiNGA
07.11.2006, 19:46
Здравствуйте,
суть вопроса в следующем:
имеется форма, которая передает текстовые переменные в некоторый файл, например Ф.И.О человека.

Можно ли сделать так, чтобы при заполнении этой самой формы искались совпадения с некоторыми переменными из базы и в поле предлагались варианты заполнения как в Microsoft Excel
пример: Пе|тров| - тров предлагается программой при вводе Пе

Буду благодарен за любые идеи.

DarkLight
07.11.2006, 19:53
15691

Должно помочь. Остается просто получить список слов из базы

GRiNGA
07.11.2006, 21:54
Спасибо! Попробую разобраться.
А как там принять предлагаемое слово?
enter переводит на др. строку...

DarkLight
07.11.2006, 22:43
там это Ctrl, чтобы Enter не занимать. Если поле однострочное, то логично перевесить прием на enter

GRiNGA
08.11.2006, 14:27
Cпасибо.

GRiNGA
08.11.2006, 17:20
А вот допустим есть 3 поля:
Фамилия Имя Отчество
при вводе Фамилии скрипт автоматически предлагает ввод во все три поля из какой то базы,
варианты можно перебирать стрелками вверх\вниз

Как такое забабахать???

DarkLight
08.11.2006, 17:26
В функции fieldChange вместо брейка после первого совпадения делаешь занесение в массив. А потом по нажатию стрелок выводишь элементы этого массива.

GRiNGA
08.11.2006, 22:08
Ага, спасибо!
Дело потихоньку движется.
А данные по людям изначально, как я понимаю, в массив надо подгружать.
И еще, А как хранить ФИО в LSO?

DarkLight
08.11.2006, 22:36
Ну...отличный пример в хелпе есть...в общем делаешь SharedObject.getLocal("LSOname") , а потом создаешь внутри LSOname.data свойства...затем сохраняешь с помощью LSOname.flush()...если что непонятно - тут много раз об этом говорили...и в хелпе довольно толково описано

GRiNGA
08.11.2006, 22:54
Спасибо.
Я буду хранить ФИО в dictionary как одно слово Фамилия:Имя:Отчество
а при совпадении складывать в массив для перебора стрелками
а потом explodить
а сохранять в обратном порядке
кстати, во флеше какая функция для explode, implode, а то я больше по php?

DarkLight
08.11.2006, 23:28
Есть:
implode это Array.join
explode это String.split

GRiNGA
09.11.2006, 19:51
спасибо

GRiNGA
11.11.2006, 19:03
DarkLight, не посмотришь, чета я совсем в дебри залез с перебором вариантов
Разбиение на несколько полей сделал, а перебор (он должен был быть по стрелкам вниз-вверх) чета не получается
вниз еще на что-то похоже, а вверх - вообще ноль
Посмотри пожалуйста.

DarkLight
11.11.2006, 20:09
1. this.text.substr(0, startOfWord) - бессмысленная конструкция, т к startOfWord - не число (поэтому undefined в начале было)
2. Нужно было перепроверить присвоение z (поэтому перебор не работал)

Теперь стрелочки функционируют
15754

GRiNGA
12.11.2006, 12:26
Cпасибо. Щас разберусь с сохранением. И еще там теперь в complete_txt получается ввод всегда с начала поля, независимо от пробелов в начале.
Поэтому случается несовпадение...

DarkLight
12.11.2006, 12:42
Добавь в код:
myText_txt_1.restrict = "^ ";
myText_txt_2.restrict = "^ ";
Это запрет на ввод пробелов.
Если будут еще вопросы, стучись в асю

GRiNGA
12.11.2006, 14:13
Респект!

GRiNGA
13.11.2006, 19:56
А как сделать, чтобы в текстовом поле заблокировать такое действие, что по кнопке "ВВЕРХ" курсор переходит на начало текста?

DarkLight
13.11.2006, 20:44
Заблокировать проблемно, но можно сделать так:
Добавь в конце кода перед Key.addListener(changer) этот код:
function pe() {
if (Key.getCode() == (Key.UP)) {
var $place:Number = Selection.getFocus().length
Selection.setSelection($place,$place);
}
}
changer.onKeyUp = pe;
При отпускании клавишы вверх курсор встанет куда надо

GRiNGA
27.05.2007, 13:53
....
DarkLight, ты мне в прошлый раз очень помог.
Большое спасибо.
Не поможешь еще?
У меня теперь такая задача.
Два поля. Фамилия и имя (ну можно еще отчество-неважно)
Нужно, чтобы при вводе каждой буквы ФАМИЛИИ (то есть при изменении текстового поля) где-нибудь рядышком выводился список соответствий из ТЕКСТОВОГО!!! файла:
например введено Сте
выводится список:
Степанов Иван Сидорович
Степников Петр Петрович
Стендаль Василий Кузьмич
Стешников Андрей Васильевич
А если потом кликнуть на человека в списке, то все три поля автоматически заполняются.
Как загружать из текста я примерно знаю. А как это делать в реальном времени???
Подскажи пожалуйста.