[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: автоподстановка значений при вводе в форму
Demjan
Хочется сделать чтоб посетителю для заполнения формы можно было ввести только начальные буквы воодимого слова, после чего в выподающем списке будут предложены варианты из заранее составленного списка возможных вариантов, это может быть список товаров или как в моём случае, населённых пунктов.
Чтобы было понятнее о чём хочу спросить, этот способ можно посмотреть
http://ati.su/Tables/

поля "откуда " и "куда"

На каком языке это реализовано, можно обойтись без Javaskript и совсем будет здорово если найдуться готовые скрипты для подстановки своих данных.


С наилучшими пожеланиями, заранее благодарный и искренне Ваш.



Спустя 1 час, 56 минут, 10 секунд (3.02.2010 - 11:49) sergeiss написал(а):
AJAX. Поэтому без JS не обойдешься никак.

Вот тут http://phpforum.ru/index.php?showforum=28 посмотри, особенно прикрепленные темы (наверху которые).

Спустя 1 день, 4 часа, 32 минуты, 6 секунд (4.02.2010 - 16:21) Demjan написал(а):
сделал на в коде странички так:

<input type="text" id="example2" />

<script type="text/javascript">

// --- Автозаполнение2 ---
$("#example2").autocomplete("autocomplete.php", {
delay:10,
minChars:2,
matchSubset:1,
autoFill:true,
matchContains:1,
cacheLength:10,
selectFirst:true,
formatItem:liFormat,
maxItemsToShow:10,
onItemSelect:selectItem
});
// --- Автозаполнение2 ---
});

</script>

создал в том-же каталоге php -файл с содержимым и названием autocomplete.php:

<?php
header('Content-Type: text/html; charset=utf-8');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

if($_GET['q']){
$base = @file("autocomplete.dat");
for($i=0;$i<count($base);$i++){
$row_base = explode(":", $base[$i]);
$res = mb_strpos(mb_strtolower($row_base[1],"UTF-8"), mb_strtolower($_GET['q'],"UTF-8"));
if($res!==false&&$res==0) {
$row_base[3] = trim($row_base[3]);
print $row_base[1]."|".$row_base[3]."|".$row_base[2]."|".$row_base[0]."\n";
}
}
}
}
?>

и в этом-же каталоге файл autocomplete.dat с выводимой в выподающем списке информацией:

1:Пашковский:Краснодарский край:43,0
2:Горячеводский:Ставропольский край:34,4
3:Калинино:Краснодарский край:34,1
4:Приволжский:Саратовская область:32,0
5:Томилино:Московская область:28,5


Всё чудесно, только при вводе в поле в выпадающем списке отображается содержимое файла autocomplete.php


Получается что этот php -файл не обрабатывается а выводится его содержимое, наверно в ява-скрипте не верно его подключаю,
подключается он через
$("#example2").autocomplete("autocomplete.php", {

,может в синтаксисе ошибка?

всё в кодировке UTF-8 ,
библиотеку jQuery
http://jquery.com/
и файл query.autocomplete.js
http://www.linkexchanger.su/example_jquery...autocomplete.js
в разделе HEAD подключил,

я в ява-скриптах слабак вообще, в php бывает не редко встречаются функции которые не понимаю (((


Хотелось-бы сделать чтоб значения в строках выпадающего меню бралось из базы MySQL, но для этого надо чтоб отображалось не содержимое подключаемого явой php-кода, а обработанный материал.

Монструозное отображение вопроса вышло конечно... если что не так то уточню и поправлю.



ПС : Вы писали о оформлении кода через страничку приводящую код в удобочитаемый вид, пож-ста скинте эту ссылочку ещё раз, не нашёл, видимо на видном месте нет.

Спустя 2 минуты, 29 секунд (4.02.2010 - 16:24) sergeiss написал(а):
Demjan - отредактируй, плз, свой текст! Тут же (при вводе и редактировании) есть возможность заключить код в специальные тэги (на выбор), чтобы код подсвечивался. Для того, чтобы удобнее читать было, чтоб было понятнее.
Выделяешь текст и жмякаешь кнопку PHP, SQL, ....

Спустя 4 часа, 35 секунд (4.02.2010 - 20:24) Demjan написал(а):
ПОПРАВИЛ, за неудобство мои извинения, все чтохотел спросить -ниже:


сделал код страницы так:

<input type="text" id="example2" />


<script type="text/javascript">

// --- Автозаполнение2 ---
$("#example2").autocomplete("autocomplete.php", {
delay:10,
minChars:2,
matchSubset:1,
autoFill:true,
matchContains:1,
cacheLength:10,
selectFirst:true,
formatItem:liFormat,
maxItemsToShow:10,
onItemSelect:selectItem
});
// --- Автозаполнение2 ---
});

</
script>


создал в том-же каталоге php -файл с содержимым и названием autocomplete.php:

<?php
header('Content-Type: text/html; charset=utf-8');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

if($_GET['q']){
$base = @file("autocomplete.dat");
for($i=0;$i<count($base);$i++){
$row_base = explode(":", $base[$i]);
$res = mb_strpos(mb_strtolower($row_base[1],"UTF-8"), mb_strtolower($_GET['q'],"UTF-8"));
if($res!==false&&$res==0) {
$row_base[3] = trim($row_base[3]);
print $row_base[1]."|".$row_base[3]."|".$row_base[2]."|".$row_base[0]."\n";
}
}
}
}

?>


и в этом-же каталоге файл autocomplete.dat с выводимой в выподающем списке информацией:

1:Пашковский:Краснодарский край:43,0
2:Горячеводский:Ставропольский край:34,4
3:Калинино:Краснодарский край:34,1
4:Приволжский:Саратовская область:32,0
5:Томилино:Московская область:28,5


Всё чудесно, только при вводе в поле в выпадающем списке отображается содержимое файла autocomplete.php


Получается что этот php -файл не обрабатывается а выводится его содержимое, наверно в ява-скрипте не верно его подключаю,
подключается он через
$("#example2").autocomplete("autocomplete.php", {

,может в синтаксисе ошибка?

всё в кодировке UTF-8 ,
библиотеку jQuery
http://jquery.com/
и файл query.autocomplete.js
http://www.linkexchanger.su/example_jquery...autocomplete.js
в разделе HEAD подключил,

Хотелось-бы сделать чтоб значения в строках выпадающего меню бралось из базы MySQL, но для этого надо чтоб отображалось не содержимое подключаемого явой php-кода, а обработанный материал.

Спустя 11 минут, 15 секунд (4.02.2010 - 20:35) Demjan написал(а):
Так выглядит результат попытки ввода текста в поле sad.gif -

user posted image

Спустя 1 день, 16 часов, 6 минут, 4 секунды (6.02.2010 - 12:41) Demjan написал(а):
По другому тогда-

есть код:
<input type="text" id="example2" />



<script type="text/javascript">
$(document).ready(function(){

$("#example2").autocomplete("autocomplete.php", {


delay:10,
minChars:1,
matchSubset:1,
autoFill:true,
matchContains:1,
cacheLength:10,
selectFirst:true,
formatItem:liFormat,
maxItemsToShow:10,
onItemSelect:selectItem"

});

});
</
script>

он выдаёт список генерируемый подключаемым модулем autocomplete.php
после ввода указанного в matchSubset:1 (шестая строка сверху в коде) знаков.

Проблема в том что get-запрос происходит только при вводе указанного количества знаков и список не обнавляется при последующем вводе, как это исправить?

Спустя 8 часов, 20 минут, 53 секунды (6.02.2010 - 21:02) Demjan написал(а):
сделал эту штуку, ссылка на хороший материал : http://www.linkexchanger.su/2008/39.html

Спустя 3 месяца, 19 дней, 22 часа, 10 минут, 55 секунд (26.05.2010 - 18:13) Day написал(а):
Demjan
ну а как решил вопрос с выводом php кода вместо результата?
Я вот тоже скачал на том сайте пример и не пойму, почему не результаты выводит а код(

Спустя 16 часов, 10 минут, 55 секунд (27.05.2010 - 10:24) Day написал(а):
Во я реально лошара, тупо локально открывал страницу, а не через сервак(
Всё, вопрос отпал
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.