|
|
|
| Поставила на своем сайте автозаполнение, как написано тут: http://www.brandspankingnew.net/specials/ajax_autosuggest/ajax_autosuggest_autocomplete.html
Пример по ссылке работает так: в текстовом файле перечислены объекты на английском, они в utf8 дробятся на буквы и потом работает автоподстановка. Шустро так, без ошибок.
Я данные закинула в базу, кодировка windows-1251. Но такая проблема: если ввести "папа", то ищется и "папарацци" и "папайя", к примеру. А вот если после этого стереть последнюю букву, то выводится полный список содержания в базе, даже если нет совпадения ни по одной букве.
Вот так это выглядит нормально: http://freeq.ru/yes.gif
А вот так, когда стираешь букву: http://freeq.ru/no.gif
Сталкивался кто-нибудь? Или посоветуйте, пожалуйста, скрипт автозаполнения, который корректно работает с русским языком. Ну и с моим ДНК, наверное. =) | |
|
|
|
|
|
|
|
для: Aesha
(24.03.2008 в 17:39)
| | Кто-нибудь? Очень нужна помощь. | |
|
|
|
|
|
|
|
для: Aesha
(25.03.2008 в 10:37)
| | Ну зачем весь список, ставьте в запросе limit 10
и вообще, что у вас там за селект который вытаскивает список | |
|
|
|
|
|
|
|
для: himic
(25.03.2008 в 10:42)
| | Ну это не по моему желанию выводится весь список. Я б как раз от этого хотела избавиться.
Вот так вытаскиваю селектом:
$data_file = "SELECT * FROM poezda1";
$data1 = mysql_query($data_file) or die("Query failed : " . mysql_error());
$input = strtolower( $_GET['input'] );
$len = strlen($input);
$aResults = array();
if ($len)
{
while ($happy = mysql_fetch_array($data1, MYSQL_ASSOC))
{
$aResults[] = array("id"=>htmlspecialchars($happy["id"]),"value"=>htmlspecialchars($happy["naprav"]),"info"=>$happy["km"]);
}
}
|
Потом он по плану выводится так (я тут ничего, кроме кодировки, не меняла):
echo "<?xml version=\"1.0\" encoding=\"windows-1251\" ?><results>";
for ($i=0;$i<count($aResults);$i++)
{
echo "<rs id=\"".$aResults[$i]['id']."\" info=\"".$aResults[$i]['info']."\">".$aResults[$i]['value']."</rs>";
}
echo "</results>";
|
| |
|
|
|
|
|
|
|
для: Aesha
(25.03.2008 в 12:18)
| | Сделайте лучше так:
$data_file = "SELECT * FROM poezda1 where naprav like '$имя_города_переданное%' limit 0, 10"; | |
|
|
|
|
|
|
|
для: himic
(28.03.2008 в 05:51)
| | Так название города-то еще не передалось.
Список городов выбирается как раз для того, чтобы сработало автозаполнение для выбора этого города.
Или вы про другое? | |
|
|
|
|
|
|
|
для: Aesha
(28.03.2008 в 12:30)
| | Короче тут сам принцип не очень, сейчас опишу как надо.
Есть текстовое поле
если фокус на нём, количество символов больше нуля и после нажатия клавиши прошло секунды две( нужен таймер при нажатии обнулять его)
вызываем подгрузку данных из файла "N"
в этот файл мы должны передать введённое значение и по нему уже делать селект.
если не передаёт значит надо сделать так чтобы передавал.
а потом уже отфильтрованные данные возвращаются к вам | |
|
|
|