Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ajax + автозаполнение
 
 автор: Aesha   (24.03.2008 в 17:39)   письмо автору
 
 

Поставила на своем сайте автозаполнение, как написано тут: 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   (25.03.2008 в 10:37)   письмо автору
 
   для: Aesha   (24.03.2008 в 17:39)
 

Кто-нибудь? Очень нужна помощь.

   
 
 автор: himic   (25.03.2008 в 10:42)   письмо автору
 
   для: Aesha   (25.03.2008 в 10:37)
 

Ну зачем весь список, ставьте в запросе limit 10
и вообще, что у вас там за селект который вытаскивает список

   
 
 автор: Aesha   (25.03.2008 в 12:18)   письмо автору
 
   для: 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>";

   
 
 автор: himic   (28.03.2008 в 05:51)   письмо автору
 
   для: Aesha   (25.03.2008 в 12:18)
 

Сделайте лучше так:

$data_file = "SELECT * FROM poezda1 where naprav like '$имя_города_переданное%' limit 0, 10";

   
 
 автор: Aesha   (28.03.2008 в 12:30)   письмо автору
 
   для: himic   (28.03.2008 в 05:51)
 

Так название города-то еще не передалось.
Список городов выбирается как раз для того, чтобы сработало автозаполнение для выбора этого города.
Или вы про другое?

   
 
 автор: himic   (28.03.2008 в 14:35)   письмо автору
 
   для: Aesha   (28.03.2008 в 12:30)
 

Короче тут сам принцип не очень, сейчас опишу как надо.

Есть текстовое поле
если фокус на нём, количество символов больше нуля и после нажатия клавиши прошло секунды две( нужен таймер при нажатии обнулять его)
вызываем подгрузку данных из файла "N"
в этот файл мы должны передать введённое значение и по нему уже делать селект.
если не передаёт значит надо сделать так чтобы передавал.

а потом уже отфильтрованные данные возвращаются к вам

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования