Содержание страницы
домикГлавная / Скрипты java и php / Скрипт поиска по сайту
поиск по сайтуВыставляю для ознакомления три варианта скрипта поиск по сайту на java, php и xml, любой из которых можно смело применить для любых ваших сайтов.

Во всех вариантах скрипта поиска по сайту html отсутствует кнопка "Найти" и исключается перезагрузка страниц, где вывод результатов поиска происходит посредством ajax сразу на глазах посетителей.

У каждого варианта поиска есть свои плюсы и недостатки, но в одном они все одинаковы: создали статью и сразу прописали сами результаты для поиска, потому как функционал скрипта построен на поиске из записанного, а не на поиске информации по всему вашему сайту.

И давайте рассмотрим все примеры подробно с пошаговыми действиями для установки каждого из них на сайт.

Первый вариант поиска по сайту с БД.

Этим вариантом поиска на сайте я успешно пользовался сам. Обработчик php запросов для поиска не очень сложный, где я не имея навыков программирования смог без особого труда внедрить картинки к выводу результатов в поиске.

Ещё одним плюсом является подсветка найденных слов (букв) в результате поиска.

Недостатком является один факт - если прописывать в таблице БД адрес страницы из другой категории, то есть к примеру вот так: cat/page.html то при переходе по этому адресу из результатов поиска браузер выдаёт ошибку. А связано это с тем, что обработчик экранирует подобные символы, то есть превращает в html сущности.

Вы поймёте о чём речь, когда установите этот скрипт поиска и начнёте его опробовать в работе.
Первый вариант скрипта поиска взаимодействует с Базой данных и давайте сразу приступим к её заполнению.

Скачайте ниже архив со скриптом поиска для сайта и залейте всё содержимое на хостинг.
Далее создайте БД с именем poisk_test и сравнение utf8_general_ci. После нажмите на созданную базу и в верхнем меню кликните кнопку SQL и в появившееся окно вставьте скопированный код из файла BD.sql и затем нажмите ОК.

Всё, готово! Открывайте ваш сайт в браузере и проверяйте работу скрипта поиска по сайту, а уже после замените всё необходимое в таблице MySQL на своё.
Важно!
Когда будете менять в поиске на свои: текст и URL адреса, то в файле search.php не забудьте заменить ссылку на свой домен. И здесь же вы можете подправлять html код для вывода результатов поиска.

стрелка вниз Скачать скрипт поиска по сайту 1-ый вариант

Ссылка на файл: скачать архив

Второй вариант поиска по сайту с БД.

Во втором примере скрипт поиска работает так же от БД, как и в первом варианте, только здесь отсутствует подсветка в выдаче результатов.

И к недостаткам можно отнести то, что при поиске на латинице, скрипт ищет совпадения в адресе ссылки, потому как в этом примере адресные ссылки полностью прописываются в БД.

Для установки этого скрипта поиска по сайту сделайте такие же действия, как и в предыдущем примере, только файл search.php трогать уже не нужно.

стрелка вниз Скачать скрипт поиска по сайту 2-ой вариант

Ссылка на файл: скачать архив

Третий вариант поиска по сайту на xml без БД.

Отличительной особенностью последнего примера поиска для сайта является тот факт, что он не использует Базу Данных, а работает по сайту на основе xml, в котором и прописываются все запросы для поиска на вашем сайте.

Для его установки достаточно залить все файлы скрипта на сервер, поменять в том же файле links.xml на ваши поисковые запросы и поиск на сайте сразу будет функционировать в полном объёме.

стрелка вниз Скачать скрипт поиска по сайту 3-ий вариант

Ссылка на файл: скачать архив
Комментарии
Елена
5 августа 2018 10:13
Елена
Скрипты поиска добротные, как раз для не больших сайтов html то что нужно, спасибо!
Подскажите, как можно сделать, чтобы результаты поиска по сайту начинали выводиться при вводе не менее 2 или 3 букв.
Заранее, благодарна!
Admin
5 августа 2018 11:35
Admin
Это конечно не удобно, и я сделал таким поиск для наглядного примера работы скриптов.
Чтобы указать минимальное значение букв для вывода результатов поиска, необходимо сделать одно изменение для всех примеров приведённых на сайте.

Первый вариант => файл search.php, строка: if (strlen($search_string) > 1
Второй вариант => файл search.js, строка: if(this.value.length >= 1)
Третий вариант => файл livesearch.php, строка: if (strlen($q)>1)

Замените цифру 1 на любую другую.
Мне кажется, что оптимальным как раз вариантом остаётся поставить при поиске мин. значение букв 4-5.

Читать полностью

Елена
6 августа 2018 17:18
Елена
Понятно, спасибо )))
А не подскажите ещё, - какой всё-таки лучше скрипт поиска использовать для сайта из ваших примеров?
Вы же наверняка уже для себя выявили наилучший вариант.
Admin
6 августа 2018 20:21
Admin
Как и писал в статье, - я использовал раньше на сайте 1 вариант поиска, но когда столкнулся с ними конкретно выставляя их на сайт, то отдал бы предпочтение всё же 3-му варианту.

Поясню: с 1-ым примером у меня всё-таки были проблемы - не совместимость java скриптов, и пришлось поиск выводить в модальном окне.
Со вторым вариантом нужно иметь навыки программирования ( как и писал выше ) для внедрения своих нужд.
Ну и последний пример поиска оказался самым лёгким, простым и надёжным поиском по сайту на основе xml.
Александр
8 августа 2018 18:47
Александр
Здравствуйте.
не подскажите, как ограничить число вводимых букв в поисковой строке?
Admin
8 августа 2018 20:36
Admin
Добрый вечер!
Для ограничения вводимых букв добавьте в input вот это: maxlength="9", где цифра и будет указывать на максимально допустимое количество знаков.
Александр
9 февраля 2019 12:29
Александр
Здравствуйте.
В третьем варианте скрипта поиска по сайту есть небольшой недостаток, у Вас в Демо он отсутствует.
Что нужно добавить, чтобы при вводе заглавных букв, или при нажатом Capslocke, - скрипт правильно выводил результаты, а не показывал Нет совпадений?
Подскажите пожалуйста.
Admin
11 февраля 2019 13:01
Admin
Я доработал скрипт поиска в этом плане ( заглавные буквы ).

Изменения для input:
htmlCOPY
<input ... onkeyup="tolowcase(this),showResult(this.value)" ...>
Добавить скрипт перед </body>:

<script type="text/javascript">
function tolowcase(element){
   var str = element.value;
   var res = str.toLowerCase();
   element.value = res;
}
</script>
Александр
24 февраля 2019 18:40
Александр
Добрый день.
Только сегодня случайно обнаружил.
Третий вариант поиска не работает в IE-11, в других браузерах работает отлично.
Подскажите пожалуйста, в чём может быть причина?
Admin
24 февраля 2019 18:57
Admin
Здравствуйте!
IE - это самый проблематичный из всех браузеров, и разработчики скрипта поиска скорее всего не удосужились доработать его для этого браузера.
Здесь я вам ничем помочь не могу.
---
Единственное утешу - не берите в голову этот факт, этим браузером пользуются единицы и не стоит из-за этого заморачиваться)))
Михаил
13 марта 2019 01:04
Михаил
Подскажите, как в 3 примере скрыть элемент Нет совпадений и Результаты поиска при клике за его пределами, либо как у вас с помощью крестика?
А то результаты продолжают отображаться если пользователь перестал вводить поиск и не выбрал из предложенных пунктов.
Maska
15 марта 2019 14:49
Maska
Присоединяюсь к Михаилу, нужен сброс поля при клике вне поля поиска, либо как у вас, и ещё:

При изменении if (strlen($q)>3) Список выводиться на 4 ( четвертой ) букве, это верно,
а нет совпадений при этом алгаритме, все равно выбрасывается на 1 ( первой ) букве.

Мой вопрос: как сделать что бы нет совпадений появлялось на 3-4 букве?
То есть как сделано у вас.
В целом перепробовал много скриптов, этот ОЧЕНЬ ЗАСЛУЖИВАЕТ ВНИМАНИЯ!
Да и отклик на поддержку очень быстрый!
Admin
15 марта 2019 19:41
Admin
Дело в том, что изночально в скрипте поиска была допущена маленькая ошибка.
А точнее в условие if (strlen($q)>3) скрипт не одинаково считывает символы для латиницы и кириллицы ( русские буквы ).
То есть для латиницы это будет 1 знак, а для кириллицы 3 знака.
Для этого сделать поправку!

Открываем файл: livesearch.php
phpCOPY
// После этой строки $q=$_GET["q"]; // Добавляем mb_internal_encoding("UTF-8"); // Находим if (strlen($q)>=3) { // И заменяем на if (mb_strlen($q)>=3) { // Находим в самом низу if ($hint=="") // И заменяем на if ( $hint == "" && ( mb_strlen($q)>=3 ))
Пояснения:
mb_internal_encoding("UTF-8"); и mb_strlen - уровняли количество знаков для латиницы и кириллицы;
if (strlen($q)>=3) - ставим желаемую цифру, после которой будет осуществляться поиск;
if ( ($hint=="") and ((mb_strlen($q)>=3)) ) - ставим желаемую цифру, после которой начнёт показываться Нет совпадений.

Читать полностью

Admin
15 марта 2019 20:14
Admin
Вопрос по закрытию результатов поиска при клике.
1. Добавьте для input индификатор id="my_input"

2. После input добавьте кнопку:
<p id="clearButt" title="Очистить поиск">x</p>

3. Изменим скрипт ( комментарий от 11 февраля 2019 13:01 ):

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
function tolowcase(element){
 var str = element.value;
 var res = str.toLowerCase();
 element.value = res;
}
$(document).ready(function(){
    document.getElementById("clearButt").onclick = function(e){
    document.getElementById("my_input").value = "";
    $('#livesearch').hide(100);
}
$('#my_input').on('keyup',function(){
    var $this = $(this),
    val = $this.val();
    if(val.length >= 3){$('#livesearch').show(100);
    }else {$('#livesearch').hide(100);
  }
});
});
</script>

У кого библиотека jQuery на сайте уже подключена, тому верхний скрипт https://ajax.googleapis.com...... прописывать не нужно.
Соответственно для кнопки <p>...</p> пропишите стилевые значения для нужного отображения.

Читать полностью

Maska
15 марта 2019 21:56
Maska
Можно последнее:
- можно сделать поиск на русском и английском одновремменно?
- если нет, то как переходить на английский язык?
Спасибо за работу!!!!
Admin
15 марта 2019 22:07
Admin
После дополнений ( выше ), поиск работает как на русском, так и на английском языках.
Maska
16 марта 2019 13:04
Maska
Еще один момент:
1. Если в <title> написать анг. слово с заглавной буквой, то оно находится скриптом. Пример ( Sika )
2. Если в <title> написать рус. слово с заглавной буквой, то слово не находиться. Пример: ( Клей )
а это очень важный момент для товаров. Поправте если получится.

СКРИПТ БЛЕСК!!!!!!!!!!!!!!!!! Получается.
Может вы его исправленным целеком выложите, что бы исключить ошибки.
Спасибо за хорошую работу!!!!!
Admin
16 марта 2019 14:16
Admin
1. Зачем вам писать в <title> с заглавных букв? Ведь этот заголовок используется только для поиска ( не усложняйте себе жизнь ).
Другое дело, если идёт автоматом подстановка в <title> из Базы данных, вот тогда нужно будет обдумать этот момент.

2. Я предоставляю всегда для скачивания, как и любой другой скрипт, - только в исходном состояние от разработчика. Кому действительно нужно, тот по комментариям внедрит желаемые поправки.
Маска
27 марта 2019 11:15
Маска
Добрый день. Вы можете выложить для скачивания 3 вариант целиком ( как на демо ).
Не могу справиться с очисткой поля X.
Адрес страницы предоставил.
Спасибо.
Admin
27 марта 2019 18:17
Admin
Изменил js, - смотрите мой комментарий от 15 марта 2019 20:14.
Вставляйте этот код и проверяйте.
Маска
28 марта 2019 11:50
Маска
Теперь работает 100%.
Без Вас точно бы не справился. СПАСИБО!!!!
Отличный СКРИПТ поиска для сайта!
Добавить комментарий
Комментарий не отправлен!
Комментарий успешно отправлен!
После модерации он будет опубликован!
Имя - только русские буквы!
Это обязательное поле!