Покинул форум
Сообщений всего: 139
Дата рег-ции: Янв. 2011
Помог: 0 раз(а)
Пока пытался сам изучить - сто раз убился головой об стенку! Сколько сайтов не перепробовал с обучением этой штуке - нигде ничего нормального нет.
Суть вот в чём: мне нужно автозаполнить из како-го то поля таблицы бд,
везде пишут описание первого файла где сама форма, которую надо автозаполнить. А мне нужно знать(сам никак не допираю), что должно быть во 2 файле, который выгружает из бд.
Хотябы скажите конструкцию, а как подставить значения из базы данных я сам разберусь.
Вот что я использую в первом файле:
Front end. (страница для пользователя)
Подгружаете библиотеку к странице стандартным кодом: <script type="text/javascript" src="js/jquery.autocomplete.js"></script>
Сразу после этого добавляем функцию автозаполнения для поля ввода: $(document).ready(function() {
$('#input_text').autocomplete({
serviceUrl:'2.php',//скрипт выдающий список подсказок для автозаполнения
minChars:2, //количество символов введённых пользователем при которых начинается автозаполнение
width: 300, //ширина поля для вивода предлагаемых результатов автозаполнения
highlight: false, //запретить подсветку букв совпадающих с введёнными
onSelect: function(value, data){ document.forms['input_form'].submit(); } //функция выполняющаяся при выборе пользователем одного из предложеных вариантов
});
});
И на этой же странице организуем форму для ввода данных: <form name="input_form" id="input_form" action="" method="POST" >
<input id="input_text" type="text" size="50" value="" autocomplete="off">
</form>
Back end. (скрипт дающий данные для автозаполнения)
У вас он называется 2.php
При каждом вводе пользователем символов в поле "input_text" посылается на скрипт 2.php GET-запрос с переменной query имеющей значение введённого текста пользователем. Скрипт 2.php должен ответить списком предлагаемых вариантов для заполнения в формате json.
Структура 2.php примерно такая:
1. Подключаемся к базе данных.
2. Обрабатываем пришедшую переменную $_GET['query'] в соответствии с нормами безопасности (вырезаем теги, обрезаем лишние пробелы, используем mysql_real_escape_string() и т.д.)
3. Делаем запрос к базе с выборкой данных совпадающих с обработаным $_GET['query'] $rs = mysql_query("SELECT ........",$link);
4. Возвращаем выбраные данные примерно так: $rs_cnt = mysql_num_rows($rs);
$json_str="{query:'".$query_text."',suggestions:[";
for($i=0;$i<$rs_cnt;$i++) {
if ($i==0) $json_str.="'".mysql_result($rs,$i,'поле таблицы с данными для автозаполнения')."'";
else $json_str.=",'".mysql_result($rs,$i,'поле таблицы с данными для автозаполнения')."'";
}
$json_str.="]}";
echo $json_str;
----- Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев. Качественный хостинг по доступной цене
JustUserR
Отправлено: 21 Января, 2011 - 15:30:41
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Dazar Процесс реализации поставленной задачи автозаполненеия целевого элемента формы может быть осуществлен на основе различных способов - как предполагаемого словаря допустимых словосочетаний - так и применения эвристического алгоритма позволяющего включать целевые отображаемые формы на основе поиска однокореннных слов в результате разбора алгоритмом стеммера портера
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
maksmib
Отправлено: 11 Февраля, 2011 - 12:17:08
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Я прошу прощения, но что то не могу сообразить.. а как же сделать такой вариант, когда необходимо дать возможность вписать несколько вариантов через запятую?
Первое введенное слово находится нормально, но все что вводится после запятой, остается без реакции.
Подскажите пожалуйста где я накосячил.
maksmib
Отправлено: 11 Февраля, 2011 - 15:43:35
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Собственно вопрос больше в том, что именно содержится в параметре "query" массива _GET, в тот момент, когда один из вариантов подстановки уже был выбран?
maksmib
Отправлено: 11 Февраля, 2011 - 20:03:35
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
вопрос снят
JustUserR
Отправлено: 12 Февраля, 2011 - 14:07:29
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
maksmib пишет:
Первое введенное слово находится нормально, но все что вводится после запятой, остается без реакции
Для осуществления корректного размещения множества параметров поиска в информационном поле БД ассоциированном с вариантами установки автозаполнения - необходимо осуществить предварительную модификацию уровня трактования элементов включенных в запрос относительно синтаксиса операции LIKE
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
MrHok
Отправлено: 12 Апреля, 2011 - 00:32:18
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2011
Front end. (страница для пользователя)
Подгружаете библиотеку к странице стандартным кодом: <script type="text/javascript" src="js/jquery.autocomplete.js"></script>
Сразу после этого добавляем функцию автозаполнения для поля ввода: $(document).ready(function() {
$('#input_text').autocomplete({
serviceUrl:'2.php',//скрипт выдающий список подсказок для автозаполнения
minChars:2, //количество символов введённых пользователем при которых начинается автозаполнение
width: 300, //ширина поля для вивода предлагаемых результатов автозаполнения
highlight: false, //запретить подсветку букв совпадающих с введёнными
onSelect: function(value, data){ document.forms['input_form'].submit(); } //функция выполняющаяся при выборе пользователем одного из предложеных вариантов
});
});
И на этой же странице организуем форму для ввода данных: <form name="input_form" id="input_form" action="" method="POST" >
<input id="input_text" type="text" size="50" value="" autocomplete="off">
</form>
Back end. (скрипт дающий данные для автозаполнения)
У вас он называется 2.php
При каждом вводе пользователем символов в поле "input_text" посылается на скрипт 2.php GET-запрос с переменной query имеющей значение введённого текста пользователем. Скрипт 2.php должен ответить списком предлагаемых вариантов для заполнения в формате json.
Структура 2.php примерно такая:
1. Подключаемся к базе данных.
2. Обрабатываем пришедшую переменную $_GET['query'] в соответствии с нормами безопасности (вырезаем теги, обрезаем лишние пробелы, используем mysql_real_escape_string() и т.д.)
3. Делаем запрос к базе с выборкой данных совпадающих с обработаным $_GET['query'] $rs = mysql_query("SELECT ........",$link);
4. Возвращаем выбраные данные примерно так: $rs_cnt = mysql_num_rows($rs);
$json_str="{query:'".$query_text."',suggestions:[";
for($i=0;$i<$rs_cnt;$i++) {
if ($i==0) $json_str.="'".mysql_result($rs,$i,'поле таблицы с данными для автозаполнения')."'";
else $json_str.=",'".mysql_result($rs,$i,'поле таблицы с данными для автозаполнения')."'";
}
$json_str.="]}";
echo $json_str;
Ну вот и всё, у меня так работает.
Очень подробно и красиво расписали. Супер.
Но есть вопрос. Как я не искал автозаполнение, но все в подобной форме как Вы описали.
А если мне нужно что бы при вводе текста в первое поле, этот же текст синхронно появлялся и во втором поле. Как это сделать ?? Подскажите пожалуйста. Уже все перерыл. Понимаю, что возможно как то можно переделать тот пример что расписали Вы, но как именно не знаю. Такая мелочь казалось бы, но что-то не дается мне никак.
Заранее благодарю )
DeepVarvar
Отправлено: 12 Апреля, 2011 - 08:40:18
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Спасибо за исчерпывающий ответ.
Ну это Вам оно все понятно как дважды два )).
Я ничего не понял если чесно. Куда скопировать и какой и зачем цикл сделать.
itexy
Отправлено: 26 Апреля, 2011 - 13:56:15
Новичок
Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2011
нужно было указать правильный адрес к файлу.
В моем случае - я просто переместил файл в одну директорию с тем, где лежал html с формой.
Осталась еще одна проблема..
Оно не понимает русский...
Сейчас буду рыться искать, как решить, если кто знает скажите, пожалуйста. Если я найду раньше, - выложу в эту тему (будет наследникам уже полное руководство со всеми проблемами). (Добавление)
Фух, решено.
Траблы с кодировкой.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.