Поиск с подсказками

-USTAS-

Постоялец
Регистрация
26 Май 2010
Сообщения
131
Реакции
4
Бьюсь над этой проблемой уже не первый год. Но чем больше бьюсь, тем больше понимаю, что не смогу самостоятельно это реализвать - уровня необходимого нет(((
Форумчане подскажите пожалуйста!
Вот есть такой сайт:

На нем ОЧЕНЬ хорошо организован поиск с подсказками, как в Гугле.
Как это можно реализовать на моем сайте. И можно ли вобще.
Вот мой сайт:

Буду ОЧЕНЬ признателен за помощь!
 
думаю jquery-ui autocomplete как раз то, что вы ищете... Для просмотра ссылки Войди или Зарегистрируйся
к стати этот же плагин используется на сайте приведенном в пример... (исходный код строка 19)
 
Я видел это вариант, но там города. И все прикручено к базе городов со стороннего сайта.
А как чтобы по моему сайту поиск велся?
 
делаешь выборку из бд и уже на сайте используешь jquery autocomplete

вот здесь решение для шоп-скрипта. Переделаешь под себя
Для просмотра ссылки Войди или Зарегистрируйся
 
Мое решение, с подсветкой совпадения:

HTML:
<script type="text/javascript">
function lookup(inputString) {
    if(inputString.length < 3) {
        $('#suggestions').fadeOut();
    } else {
            $.post("/modules/recom/ajaxsearch.php?search="+inputString, {queryString: ""+inputString+""}, function(data) {
            $('#suggestions').fadeIn();
            $('#suggestions').html(data);
        });
    }
 
    $("input").blur(function(){
        $('#suggestions').fadeOut();
    });
}
</script>
Сам input
HTML:
<input type="text" onkeyup="lookup(this.value);" class="search-input" id="inputString" name="cntnt01searchinput" size="20" maxlength="50" value="Поиск по сайту" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;" AUTOCOMPLETE="off"/>
И сам php
PHP:
if(isset($_GET['search']))
    {
        $query = mysql_query("select parent_id, content_name, hierarchy_path from cms_content where content_name like '%".$_GET['search']."%' or menu_text like '%".$_GET['search']."%' order by content_name ASC");
        while($row = mysql_fetch_array($query))
            {
                $query_par = mysql_query("select content_name from cms_content where content_id ='".$row['parent_id']."'");
                if($res_par = mysql_fetch_assoc($query_par))
                    {
                        $parrent = $res_par['content_name'];         
                        $parrent_title = '('.$parrent.')';
                    }
                else
                    {
                        $parrent_title = '';
                    }
         
         
         
                preg_match('#'.$_GET['search'].'#isu', $row['content_name'], $matches);
                $res_out = preg_replace('#'.$_GET['search'].'#isu', '<span style="color:#FE7E0C">'.$matches[0].'</span>', $row['content_name']);
         
                $res_arr[] =  '<a class ="srch_a" href="/'.$row['hierarchy_path'].'">'.$res_out.' '.$parrent_title.'</a>';
         
         
            }
        $res = array_unique($res_arr);
        foreach($res as $a)
                {
                    echo $a;
                }
    }
Это полностью рабочий пример, конечный вариант можно посмотреть Для просмотра ссылки Войди или Зарегистрируйся (вбить в поиск что-то вроде "худож", контента там пока почти нет, поэтому и искать особо нечего)
 
По ссылке какой-то книжный сайт выбивает
А по поводу кода - что куда вставлять подскажите пожалуйста
И что делает этот код? Подсвечивает слова на странице результаов поиска или на конечной странице?
 
По ссылке там сайт, который сейчас довожу до ума. Там в строке поиска можно ввести "худож" и сразу станет все видно
вот пример
scr1.jpg

или
scr2.jpg
скрипт вставлять в шаблон (между <head></head>), сам input соответственно там, где нужно в шаблоне чтоб была строка поиска, ну и сам php где угодно, только путь правильно указать нужно, у меня в скрипте он
$.post("/modules/recom/ajaxsearch.php
 
ну и сам php где угодно, только путь правильно указать нужно, у меня в скрипте он
$.post("/modules/recom/ajaxsearch.php
А можно об этом пункте поподробней?
Мне файл нужно отдельный сделать или дописать в имеющийся какой-то?
И если последнее, после чего дописывать?
 
Новый конечно, только в начало файла нужно вписать подключение к базе (если файл не является модулем в движке), затем поменять выборку из базы в соответствии со своей структурой. Если нет никаких знаний по php, то самостоятельно это сделать не получится в любом случае.
 
Птху ты ё...
Какая база? какой движок???
Тут же вся фишка, что это хтмл)))
 
Назад
Сверху