Пример живого поиска на ajax

ajax поиск

Недавно реализовал клиенту живой поиск на лендинге и решил поделиться скриптом.
 

Как работает живой поиск

При вводе в input слова, начинает искать в базе данных похожие выражения.
В скрипте я настроил так, что при вводе двух символов и более, начинается поиск и выдача результатов.
При клике на результат, он попадает в поле поиска, а сам результат скрывается и поле деактивируется.
 
Скрипт можно сделать под себя при необходимости. Ничего сложного.
 

index.html

В нём подключаем только библиотеку ajax и наш скрипт search.js
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/search.js"></script>
 
Стили:
<style>
   .search{
   position:relative;
}

.search_result{
    background: #FFF;
    border: 1px #ccc solid;
    width: 100px;
    border-radius: 4px;
    max-height:100px;
    overflow-y:scroll;
    display:none;
}

.search_result li{
    list-style: none;
    padding: 5px 10px;
    margin: 0 0 0 -40px;
    color: #0896D3;
    border-bottom: 1px #ccc solid;
    cursor: pointer;
    transition:0.3s;
}

.search_result li:hover{
    background: #F9FF00;
}
</style>
 
И сам html:
<input type="text" name="referal" placeholder="Живой поиск" value="" class="who"  autocomplete="off">
<ul class="search_result"></ul>
 

Файл search.js

$(function(){
    
//Живой поиск
$('.who').bind("change keyup input click", function() {
    if(this.value.length >= 2){
        $.ajax({
            type: 'post',
            url: "search.php", //Путь к обработчику
            data: {'referal':this.value},
            response: 'text',
            success: function(data){
                $(".search_result").html(data).fadeIn(); //Выводим полученые данные в списке
           }
       })
    }
})
    
$(".search_result").hover(function(){
    $(".who").blur(); //Убираем фокус с input
})
    
//При выборе результата поиска, прячем список и заносим выбранный результат в input
$(".search_result").on("click", "li", function(){
    s_user = $(this).text();
    //$(".who").val(s_user).attr('disabled', 'disabled'); //деактивируем input, если нужно
    $(".search_result").fadeOut();
})

})
 

Обработчик запросов search.php

<?php

define("DB_HOST","localhost");
define("DB_NAME",""); //Имя базы
define("DB_USER",""); //Пользователь
define("DB_PASSWORD",""); //Пароль
define("PREFIX",""); //Префикс если нужно

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$mysqli -> query("SET NAMES 'utf8'") or die ("Ошибка соединения с базой!");

if(!empty($_POST["referal"])){ //Принимаем данные

    $referal = trim(strip_tags(stripcslashes(htmlspecialchars($_POST["referal"]))));

    $db_referal = $mysqli -> query("SELECT * from ".PREFIX."search WHERE name LIKE '%$referal%'")
    or die('Ошибка №'.__LINE__.'<br>Обратитесь к администратору сайта пожалуйста, сообщив номер ошибки.');

    while ($row = $db_referal -> fetch_array()) {
        echo "\n<li>".$row["name"]."</li>"; //$row["name"] - имя поля таблицы
    }

}
?>
 
У кого будут вопросики, спрашивайте, не стесняйтесь.
Комментариям всегда рад.
 
Внимание
 Это самый простой пример живого поиска, который не рекомендуется использовать на своих сайтах.
 Как минимум нужно сделать кучу проверок, а ещё лучше сделать всё на PDO а не на mysqli, что бы обеспечить безопасность.
 Любой профи сможет с лёгкостью взломать сайт или базу и вытащить секретные данные.
 Все взломы происходят в основном через поиск.

Скачать пример живого поиска
Скачать файл: Live_search.rar [2 Kb] (cкачиваний: 2396)
Поблагодарить автора 
Автор: Kylaksizov

Комментарии ( 178 )

  1. +1

    evgennova

    Офигенный код от профи.
    Даже помог подпилить на мой корявый движок.
    Спасибо автору !
    6 октября 2015 20:20 Ответить
    1. 0

      Kylaksizov

      Спасибо, рад был помочь.
      6 октября 2015 20:23 Ответить
  2. +1

    Anon

    Подскажите пожалуйста, как лучше всего будет прикрутить loader к этому всему? Т.е, во время выполнения запроса к серверу и выборки, чтобы пользователю показывалась картинка загрузки данных
    19 ноября 2015 16:09 Ответить
    1. 0

      Kylaksizov

      Всё просто. Перед ajax запросом показываете уже готовую картинку loader.gif например. А после запроса, вернее когда возвращается дата, скрываем этот loader и всё.
      19 ноября 2015 16:14 Ответить
  3. +1

    Денис

    Спасибо! Но есть вопросы.

    1) достаточно ли прав на чтение БД для работы данного поиска ?

    2) просто УМОЛЯЮ - помогите создать таблицу.
    Зашёл в панель MSQL - и в моей БД таблиц не обнаруженно. А как я понял нужна таблица...
    7 декабря 2015 02:08 Ответить
    1. 0

      Kylaksizov

      Добрый день Денис.
      1. это Вы сами уже назначаете права, по умолчанию должно быть всё настроено.
      2. Сделайте запрос в базу такой:
      CREATE TABLE `search`(`name` TEXT character set utf8 collate utf8_general_ci NOT NULL)

      Создание таблиц в БД
      7 декабря 2015 08:59 Ответить
      1. 0

        Денис

        Спасибо, но выдает ошибку
        Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not known in/home/izba161/onitut.ru/docs/search.phpon line9
        7 декабря 2015 14:59 Ответить
        1. 0

          Kylaksizov

          Если я не ошибаюсь, то это говорит о том, что скрипт не может соединиться с БД, т.е. неверный хост-сервер скорей всего.
          7 декабря 2015 15:06 Ответить
          1. 0

            Денис

            define("DB_HOST","izba161.nichost.ru");
            define("DB_NAME","izba161_db"); //Имя базы
            define("DB_USER","izba161_mysql"); //Пользователь
            define("DB_PASSWORD","nSAieV5_"); //Пароль
            define("PREFIX",""); //Префикс если нужно

            вроде все правильно сделал....
            не работает.

            Автор - дело могарычевое - и дело принципа. помоги пожалуйста заставить. его работать.
            мой скайп ivashovdo - или как с тобой связаиься ?
            8 декабря 2015 05:26 Ответить
            1. 0

              Kylaksizov

              Добавился, жду
              8 декабря 2015 07:39 Ответить
  4. +2

    Денис

    Решено :)
    Дело было в моих "ровных" руках. Спасибо Владимиру Куласкизову за этот сайт.
    Второе - спасибо за своевременные коментарии в которых он отвечал на вопросы (пусть даже самые неадекватные)
    Третье - сам поиск по сайту (живой поиск) который написал Вова очень крут!
    Четвертое - оказалось мне этот поиск не подойдет, потому, что я использую чистый HTML+CSS+javascript (не использую CMS и базы данных, все делаю руками...)
    Пятое - спасибо Вове за то, что он НАСТОЯЛ на том, что бы я слез с тотал командера и начал использовать Файл зилу (Вова - действительно быстрее и удобнее спасибо)

    И в итоге, хорошо, что есть сайты на которых реально актуальная информация (в данном случае рабочий скрипт живого поиска для сайта). И очень хорошо, что вот так просто можно обычному человеку (далекому от программирования) задать вопрос, получить ответ, да еще и автор сайт перезвонит тебе в скайп и несмотря на свою загруженность просто по человекчески поможет все установить и расскажет.
    Вова - ты хороший программист и видимо отличный человек. Спасибо за твою работу и твой сайт!
    9 декабря 2015 08:00 Ответить
    1. 0

      Kylaksizov

      Денис, спасибо за такой отзыв :D
      Не перехвали ))) Я просто постоянно в сети, поэтому помочь 5 минут не составляет большого труда.
      Одно дело помочь и подсказать, другое сделать за кого-то работу.
      Спасибо ещё раз, красочно)
      9 декабря 2015 08:08 Ответить
      1. 0

        Роман

        Приветствую, Владимир.

        Скрипт полезный! Все работает (подключаюсь к базе, идет живой поиск).
        Но при клике мышкой на варианте из появившегося списка (<li>) поле (input) не заполняется выбранным значением (((

        Как исправить? Подскажите, пожалуйста.
        13 декабря 2015 19:27 Ответить
        1. 0

          Kylaksizov

          Спасибо Роман.
          В файле search.js нужно раскомментировать строку.
          //При выборе результата поиска, прячем список и заносим выбранный результат в input
           $(".search_result").on("click", "li", function(){
              s_user = $(this).text();
              $(".who").val(s_user).attr('disabled', 'disabled'); // эту строку, а если инпут ненужно деактивировать, то уберите это .attr('disabled', 'disabled')
              $(".search_result").fadeOut();
          })

          Отпишите, как результат.
          13 декабря 2015 19:30 Ответить
          1. +1

            Роман

            Да, все ok !!!

            Огромное спасибо.
            13 декабря 2015 19:53 Ответить
            1. 0

              Kylaksizov

              Вам спасибо, что уделили время моему сайту и моим скриптам :)
              13 декабря 2015 19:54 Ответить
          2. 0

            Максим

            Здравствуйте! Все работает, раскоментировал строку и данные подставляются в поле, но их нельзя редактировать, как это исправить?

            Все нашел!!! Разобрался просто убрал .attr('disabled', 'disabled') и готово
            4 мая 2017 11:22 Ответить
  5. 0

    Ярослав

    Скрипт отличный!!! Но вот не подскажите ли, как сделать, что бы результат поиска выводился?
    18 декабря 2015 15:32 Ответить
    1. 0

      Kylaksizov

      Спасибо Ярик.
      Так поиск же итак выводит сразу результат.
      Детальней напишите пожалуйста...
      18 декабря 2015 15:34 Ответить
      1. +1

        Ярослав

        Всё разобрался уже сам. Спасибо!
        18 декабря 2015 17:43 Ответить
        1. 0

          Гость Александр

          напишите решение
          21 августа 2017 10:56 Ответить
          1. 0

            Kylaksizov

            Какое решение написать? Как выводить результат поиска? Так он по умолчанию итак выводится. Если у Вас не работает, значит Вы что-то не так подключили.
            21 августа 2017 11:49 Ответить
  6. +1

    evgennova

    Пользуюсь этим скриптом уже довольно долго. Перед тем как выбрать самое лучшее решение "живого поиска" перелапатил много разных скриптов и с уверенностью могу сказать только одно - данный скрипт мал в объеме, прост и понятен (исходя из того что он делает). Как на мой взгляд необходимо было бы добавить парочку мелких доработок для улучшения восприятия людьми, такие как:

    1. вывод не только наименования, но и цены, артикулы, картинки (смотря для каких сайтов).

    2. добавить в код ограничение по выводу и сортировка по... (ORDER BY name LIMIT 15) кол-ва результатов, с дополнительным выводом фразы "просмотреть все" (то что не вошло в лимит поисковых результатов).

    3. при отсутствии найденных результатов выводить информацию ("поиск ничего не дал", "повторите ввод символов", ....и т.п.)

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

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

    6. самое главное что бы можно было бы добавить, так это возможность при поиске выбирать части вводимых слов, а именно по разным (не по порядку) выбором слов в наименовании, например - ("Электрочайник Delonghi KBZ 2001.GY Scultura Collection") можно было бы его найти по написании фразы в поиске "Delonghi Scultura" - что то вроде автодополнения, т.е. после нажатия на пробел появляется возможность поиска уточнений в уже найденных товарах...

    P.S. парочку таких скриптов нашел, но при подключении работали каждый по своему некорректно....
    18 декабря 2015 21:28 Ответить
    1. +1

      Kylaksizov

      Советы дельные, но я как раз специально написал проще простого, что бы как можно меньше возникало вопросов у тех, кто никогда не делал этого.
      Можно сделать сколько угодно проверок, лимит и т.д., но это уже каждому индивидуально.
      25 декабря 2015 10:31 Ответить
      1. 0

        evgennova

        цена вопроса улучшения по пункту №6?

        P.S. пункты 3,4,5 - не особо проблемные (есть даже другой код со всем выше перечисленным кроме 6 пункта)
        С 6 пунктом искал готовый код но ничего целостного не нашел, очень много нужно подпиливать и подставлять - пока не силен в этом, и забросил до лучших времен :-) ... )
        25 декабря 2015 18:29 Ответить
        1. 0

          Kylaksizov

          В принципе ничего сложного тут нет, просто обработка будет чуть дольше. Но для человеческого глаза это не заметно.
          Цену на сайте я не обсуждаю. Скайп у Вас мой есть по моему.
          25 декабря 2015 18:38 Ответить
      2. 0

        Nicolas

        Правильно сделали, не должно быть ничего лишнего, вы создали базу, а все остальное - индивидуальные потребности каждого.
        24 августа 2016 17:35 Ответить
  7. +1

    Дмитрий

    Наконец-то работающий код! СПАСИБО!!! :)
    25 декабря 2015 10:22 Ответить
    1. 0

      Kylaksizov

      Пожалуйста
      25 декабря 2015 10:29 Ответить
  8. 0

    Игорь

    добрый день,
    помогите плиз разобраться с ошибкой №17
    сайт klepa-i-misha com
    сделал по инструкции все.
    19 января 2016 12:18 Ответить
    1. 0

      Kylaksizov

      Помог...
      19 января 2016 15:49 Ответить
    2. 0

      Роман

      Сделай для .search_result {position: absolute; z-index:9999;} Так будет лучше
      28 января 2016 20:05 Ответить
      1. 0

        Kylaksizov

        Я делал на пустой странице. А тем кто ставит на сайт, тем будет лучше, ты прав. Тут править не буду, я написал как можно меньше кода, что бы было более понятно.
        28 января 2016 20:17 Ответить
  9. 0

    saintroma

    Какие права давать пользователю к БД?
    29 января 2016 02:18 Ответить
    1. 0

      Kylaksizov

      На чтение точно. Не знаю, я всегда ставлю по умолчанию.
      29 января 2016 08:27 Ответить
  10. +1

    Владимир Тальянский

    Отличная штука, спасибо!
    Изменил по-мелочи по своему вкусу - добавил в выводе вариантов цену, окно сделал поверх через z-index, но напрягает одна штука, которую победить так и не смог. Если посетитель начал вводить что-то в поле запроса, окно вариантов появилось, но тут человек передумал искать, а окно так просто не закрывается. Подскажите пожалуйста, что дописать в js, чтобы при выходе курсора мыши за границы окошка оно закрывалось (или при клике в области вне окошка - даже не знаю как лучше).
    10 февраля 2016 09:50 Ответить
    1. 0

      Kylaksizov

      Спасибо за Ваш комментарий.
      По клику вне элемента, посмотрите пожалуйста эту стать "клик вне элемента" тут хорошо всё описано, если уже не разберётесь сами, то помогу, не вопрос.
      И тут можете посмотреть помощь по jquery.
      10 февраля 2016 09:55 Ответить
      1. 0

        Владимир Тальянский

        Спасибо! С кликом вне элемента получилось сделать. А вот со схлопыванием по перемещению курсора за границы окна так и не одолел....
        10 февраля 2016 12:22 Ответить
        1. 0

          Kylaksizov

          Если я правильно понял вопрос, то нужно добавить метод mouseout.
          Если не то, то подробнее напишите задачу.
          10 февраля 2016 12:25 Ответить
          1. 0

            Владимир Тальянский

            Хотелось бы, чтобы окошко с вариантами закрывалось при выходе курсора за его границы. Человек набрал несколько букв, появилось окошко с вариантами, он смещается вниз, ходит по вариантам, но если курсор мыши уходит за границы, то окошко схлопывается.
            Я попробовал тупо вместо mouseup поставить mouseout - работает, но не так, как хотелось - набираю несколько букв в поле поиска - появляется окно с вариантами, но при попытке переходе на него вниз оно исчезает(((
            10 февраля 2016 12:38 Ответить
            1. 0

              Kylaksizov

              $("body").on("mouseout", ".search_result", function(){
                 $(this).fadeOut(300);
              })

              Ой, изменил, сейчас правильно)))
              10 февраля 2016 12:41 Ответить
  11. +2

    Владимир Тальянский

    Kylaksizov,
    Не, это повтор того, что в скрипте уже есть - закрытие по клику внутри области.
    Впрочем, я уже разобрался. Вот такая конструкция закрывает окошко с вариантами при выходе мыши за его границы
    $(document).mouseover(function (e){
    var div = $(".search_result");
    if (!div.is(e.target)
    && div.has(e.target).length === 0) {
    div.hide();
    }
    });
    Спасибо еще раз. Полезная статья и отличное сопровождение
    10 февраля 2016 12:56 Ответить
    1. 0

      Kylaksizov

      Можно и так, только я сразу исправил после публикации. Мой код немного короче и тоже рабочий.
      10 февраля 2016 12:58 Ответить
      1. 0

        evgennova

        Подскажите пожалуйста как можно добавить к коду переход по найденому с помощью клавиатуры
        10 февраля 2016 19:30 Ответить
        1. 0

          Kylaksizov

          Лучше воспользоваться плагином например jquery, чем писать самому.
          10 февраля 2016 19:34 Ответить
          1. 0

            evgennova

            ok, щас поищем, найду выложу......а что насчет вашего дополнения варианта скрипта, почему он так работает? (при наведении на выбранное исчезает все)
            11 февраля 2016 09:36 Ответить
            1. 0

              Kylaksizov

              В файле search.js стоит
              $(".search_result").fadeOut();

              Можно убрать его. Только он скрывается по клику, а не при наведении.
              11 февраля 2016 09:41 Ответить
    2. +1

      evgennova

      Ваш вариант работает корректнее чем
      $("body").on("mouseout", ".search_result", function(){
         $(this).fadeOut(300);
      })

      Невозможно что то выбрать из списка, сразу все поле исчезает
      10 февраля 2016 18:23 Ответить
    3. 0

      evgennova

      подскажите, как добавить затемнение фона (или opacity) к открывающимся результатам и при клике на фон (вне поля в результатами) - смена фона на нормальное состояние и закрытие результатов.
      Примерно как с модальными окнами
      $(this).append( '<div id="TB_overlay"></div>' );
      22 февраля 2016 12:31 Ответить
      1. 0

        Kylaksizov

        Добавьте в конец страницы
        <div class="bg_0"></div>
        .
        Создайте стиль для этого класса, например:
        .bg_0{
          background: rgba(0,0,0,0.7);
          position: fixed;
          width: 100%;
          height: 100%;
          top: 0;
          left: 0;
          z-index: 100; /*зависит от положения нужных вам элементов*/
          display: none;
        }

        Что-бы показать чёрный прозрачный фон, добавьте в нужное место скрипта jquery код:
        $(".bg_0").fadeIn("slow");

        Что-бы скрыть этот фон, прочтите пожалуйста статью http://jquery.page2page.ru/index.php5/%D0%A1%D0%BA%D1%80%D1%8B%D1%82%D1%8C
        _%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82_%D0%BF%D1%80%D0%B8_%D0%BA%D0%BB%D0%
        B8%D0%BA%D0%B5_%D0%B7%D0%B0_%D0%B5%D0%B3%D0%BE_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D
        0%BB%D0%B0%D0%BC%D0%B8

        Переписывать её сюда нет желания.
        22 февраля 2016 12:39 Ответить
    4. 0

      evgennova

      есть код покороче....
      
      $('body').click(function(){
      $('.search_result').hide('slow');
      });
      

      к нему я еще добавил
      $('#search').click(function(event){
      $('.search_result').show();event.stopPropagation();
      });
      


      код взят с Пишем свой простой вариант "живого поиска". - только запустить у меня его не получилось... :-(
      22 февраля 2016 20:48 Ответить
      1. 0

        Kylaksizov

        Но это же не то, что Вы просили. Ваш код скрывает элемент, если кликнуть абсолютно по любому элементу.
        22 февраля 2016 20:51 Ответить
        1. 0

          evgennova

          это да, просто нашел лучший вариант, как на мой взгляд, упростить код
          Владимир Тальянский


          Вариант что вы посоветовали, не совсем то что мне нужно...
          этот вариант у меня сначала закрывает "затемнение" а при 2-м клике уже убирает подсказку. я хотел что бы было как в модульных окнах, при 1м нажатии на затемнение все исчезает. Немного погодя додумаю что то попроще, когда с мыслями соберусь :-)
          22 февраля 2016 21:02 Ответить
          1. 0

            evgennova

            затемнение при поиске:
            {$(".search_result").html(data).fadeIn().append( '<div id="ion_fon"></div>' );}


            #ion_fon{
              background: rgba(0,0,0,0.5); /*можно поменять на белый rgba(255, 255, 255, 0.5)*/
              position: fixed;
              width: 100%;
              height: 100%;
              top: 0;
              left: 0;
              z-index: -1; /*зависит от положения нужных вам элементов*/
            
            }
            22 февраля 2016 21:22 Ответить
            1. +1

              Kylaksizov

              Я предложит стандартные варианты, если Вам нужно что-то особенное, то думаю Вы справитесь и сами )
              22 февраля 2016 21:25 Ответить
  12. 0

    rikoff2009

    Владимир здравствуй! Попробовал установить живой поиск по твоему "рецепту", но что-то у меня не получается... С кодом я на Вы, попытался, поковырял, и ни как( Буду очень признателен за помощь. Сайт articlemen com
    12 февраля 2016 20:32 Ответить
    1. 0

      Kylaksizov

      Добрый день/вечер (Ваше имя) буду рад Вам помочь. Мой скайп: kylaksizov
      Или Напишите Ваш скайп.
      12 февраля 2016 21:04 Ответить
      1. 0

        rikoff2009

        Здравствуйте снова! Павел. Скайпа нет, у вас есть аська? Моя аська - 668863889
        12 февраля 2016 21:07 Ответить
        1. 0

          Kylaksizov

          У меня нет аськи, раньше была, там один спам вечно, установите себе скайп или я Вам не смогу помочь.
          12 февраля 2016 21:08 Ответить
          1. 0

            rikoff2009

            Я понял, сейчас займусь

            Зарегистрировался. Вроде ник - rikoff2009@yandex.ru
            Скайпом раннее не пользовался, поэтому если не получится соединиться, пожалуйста, отправьте свой ник по почте, а я отвечу
            12 февраля 2016 21:30 Ответить
            1. 0

              rikoff2009

              Огромное спасибо Владимиру за его труд! действительно человек требует восхищения. Очень хороший программист (код на сайте корявый, но очень быстро разобрался), работает быстро, подсказывает, отвечает на вопросы... Просто так автор тратит свое время чтобы помочь другим людям!
              Теперь буду на этот сайт заходить чуть ли не каждый день) очень редко, когда люди так помогают! Еще раз огромное спасибо!
              13 февраля 2016 11:18 Ответить
            2. 0

              Kylaksizov

              Спасибо большое за такие слова, был рад помочь.
              13 февраля 2016 12:40 Ответить
  13. 0

    Наталия

    Владимир, добрый день!
    подскажите из-за чего могут получаться "пустые поля"?
    хотела добавить живой поиск на внутренний сайт, добавила, ищет, выдает правильное количество строк, совпадающих с поисковым запросом... но выдаются просто белые полосочки, которые при наведении подсвечиваются желтым.
    я подозреваю, что дело в кодировке. Но код написан в utf8 и база в utf8...
    абракадабра какая-то (
    17 февраля 2016 14:13 Ответить
    1. 0

      Kylaksizov

      Добрый день, Наталия, напишите адрес, где установлен поиск.
      17 февраля 2016 14:23 Ответить
      1. 0

        Наталия

        к сожалению, не могу ( Сайт на внутренней сетке, без выхода в инет
        17 февраля 2016 14:55 Ответить
        1. 0

          Kylaksizov

          Ну тогда скиньте проинспектированный элемент в раскрытом виде.
          17 февраля 2016 15:20 Ответить
    2. +1

      evgennova

      А если проверить настройки css?
      Вставить например для проверки
      <style>
      body li, li a{color:#000!important}
      </style>

      Код вставить на проверяемую страницу html...
      Тогда будет видно ищет или нет.

      Второй вариант - проверить в какой кодировке сохранен файл
      17 февраля 2016 18:58 Ответить
      1. 0

        Kylaksizov

        К стати, я тоже об этом думал, но в надежде, что Наталия это знает, я так и не написал. Видимо это будет правильное решение. Просто стили её блокируют стили поиска.
        17 февраля 2016 19:02 Ответить
        1. 0

          Наталия

          привет!
          спасибо за ответы! нет, стили не перекрываются - поиск тестирую на пустой странице.
          сделала скриншоты

          видно, что поиск ищет и находит "Ивановых Александров" - у меня их действительно три ... пока не написала Александр, полей в списке выводится больше. В инспекторе видно, что элементы списка живого поиска <li></li> пустые.
          Таблица в базе и сама база - в utf8, файл index.html - также в utf8 и search.php тоже. Куда еще можно посмотреть? )
          18 февраля 2016 10:28 Ответить
          1. 0

            Kylaksizov

            Привет, а ты заменила строку:
            echo "\n<li>".$row["name"]."</li>"; //$row["name"] - имя поля таблицы

            в файле search.php ?
            Нужно заменить поле name, что бы была выбрана информация из поля name из таблицы бд.
            Если не работает, напиши в личку свой скайп и я помогу.
            18 февраля 2016 11:03 Ответить
            1. +1

              Наталия

              ессессно, заменила )
              напишу из дома, на работе скайп невозможен )
              18 февраля 2016 12:41 Ответить
            2. +1

              Наталия

              Спасибо, Владимир, за оперативную профессиональную помощь!

              Владимир сделал 3 исправления и все заработало :)

              1)
              echo "\n<li>".$row["name"]."</li>"; //$row["name"]
              - имя поля таблицы
              я вместо имени поля указала имя таблицы.

              2) в файле search.php - установили кодировку UTF-8 вместо UTF-8 (без BOM)

              3) в корень тестового сайта добавили файл .htaccess, в котором указали кодировку по умолчанию
              AddDefaultCharset utf-8

              Все работает! Завтра повторю все эти манипуляции на работе, не сомневаюсь что и там теперь тоже все заработает.

              Еще раз спасибо :)
              18 февраля 2016 21:49 Ответить
  14. +1

    Димон Царёв

    Всем советую. Скрипт работает!
    19 февраля 2016 20:36 Ответить
  15. 0

    Елена

    А подскажите пожалуйста, как при вводе слова в поиск, не выбирая из списка, нажав enter - вывести результаты поиска. Ну то есть я набираю слово "конфеты' и не выбираю из списка, а нажимаю enter.
    18 марта 2016 20:26 Ответить
    1. 0

      Kylaksizov

      Если input будет обвёрнут тегом form, то он соответственно будет срабатывать (отсылать данные) по нажатию на Enter.
      18 марта 2016 20:34 Ответить
      1. 0

        Елена

        Да, я так и сделала, просто не понимаю как вывести результаты поиска в файле search.php , не создавая новый файл обработчик.
        18 марта 2016 21:17 Ответить
        1. 0

          Kylaksizov

          Елена, я удалил километр кода, который вы прикрепили, все равно ничего не понятно. Лучше напишите мне в скайп, завтра помогу. Контакты внизу.
          18 марта 2016 21:22 Ответить
          1. 0

            Елена

            Ну да, это я лишнее написала))
            Вообщем. если можете, покажите пример, как вывести по enter результаты поиска на отдельной странице.
            Спасибо. что уделяете время.
            18 марта 2016 21:33 Ответить
  16. 0

    Avksen

    Здравствуйте как реализовать поиск на сайте ?
    проблема в том, что база данных на другом сервере и нужно поиск реализовать через AJAX JSON PHP
    и вопрос как это сделать?
    5 апреля 2016 05:55 Ответить
    1. 0

      Kylaksizov

      Если есть доступ к файлам на другом сервере, то можно через GET запрос обычный, а можно через пост, но следует разрешить кроссдоменный запрос на другом сайте:
      header("Access-Control-Allow-Origin: *");
      5 апреля 2016 09:15 Ответить
  17. 0

    Minich

    Сделал все и даже переделал все под PDO, но выдает ошибку при поиске:
    Код получился вот такой.
    Подскажите, пожалуйста, в чем может быть ошибка?
    Если в запросе ставить %referal% со знаком $ как переменную, то PHP ругается, что она не определена. Если убрать знак $, то скрипт работает и выдает ошибку, которую я описал выше. И при поиске выдает все записи, а не только те, что подходят под запрос.
    <?php
    define('PDO_DSN', 'mysql:host=localhost;dbname=test');
    define('PDO_USER', 'root');
    define('PDO_PASSW', '');
    define('PREFIX', 'questions');
    
    $DBH = new PDO(PDO_DSN, PDO_USER, PDO_PASSW, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET names utf8'));
    
    if (!empty($_POST["referal"])) {
        $sql = $DBH->query("SELECT * FROM ".PREFIX." WHERE question LIKE '%$referal%'");
    
        while ($row = $sql->fetch(PDO::FETCH_LAZY)) {
            echo "\n<li>" . $row["question"] . "</li>";
            //$row[name];
        }
    }
    7 апреля 2016 22:26 Ответить
    1. 0

      Kylaksizov

      Вы же нигде не определяете эту переменную, сами сказали.
      Вот так нужно:
      $sql = $DBH->query("SELECT * FROM ".PREFIX." WHERE question LIKE '%".$_POST["referal"]."%'");

      ну или определить переменную выше:
      if (!empty($_POST["referal"])) {
          $referal = $_POST["referal"];
          $sql = $DBH->query("SELECT * FROM ".PREFIX." WHERE question LIKE '%$referal%'");
      8 апреля 2016 06:34 Ответить
      1. +1

        Minich

        Спасибо!!! Все получилось. Оказывается самое главное-то и забыл)))
        8 апреля 2016 09:34 Ответить
  18. +1

    Максим

    респект!
    14 апреля 2016 14:56 Ответить
  19. 0

    LadyVamp

    Здравствуйте! Воспользовалась вашим кодом для поиска товаров в БД. Возникли проблемы
    1. Как сделать при клике на товар переход на страницу с его описанием?
    2. Почему-то кроме самого списка товаров в окошке дублируется вся страница (см. скриншот). Как это исправить?
    17 апреля 2016 23:07 Ответить
    1. 0

      Kylaksizov

      Добрый день. Всё просто.
      1. Вместо моей выборки:
      echo "\n<li>".$row["name"]."</li>"; //$row["name"] - имя поля таблицы

      напишите:
      echo "\n<li><a href='".$row["id"]."'>".$row["na
      me"]."</a></li>"; //$row["name"] - имя поля таблицы

      в href разумеется пишите путь к вашему товару, используя поля какие Вам нужны, например id товара $row["id"] или смотря как у Вас строится путь к товару.
      2. Скорей всего вы подключили php скрипт в файл шаблона, поэтому после вывода поискового результата скрипт продолжает выводить весь сайт. Если Вы код подключаете в самом начале всей обработки, после окончания выборки поставьте exit; что бы он перестал выполнять следующий код. А вообще он должен стоять в отдельном файле, тогда кроме результатов поиска выводить будет нечего.
      18 апреля 2016 05:36 Ответить
      1. 0

        LadyVamp

        У меня отдельный файл search.php, а к нему подключены header и footer. Если поставить exit; , то поиск вообще работать не будет, но сайт так и будет в окошке повторяться.
        ...
        21 апреля 2016 00:14 Ответить
        1. 0

          Kylaksizov

          Ещё раз повторюсь. Файл search.php должен лежать отдельно и в него ничего не нужно подключать.
          Напишите мне в скайп или позвоните. Мой скайп найдите внизу. ↓
          21 апреля 2016 07:18 Ответить
          1. 0

            LadyVamp

            Разобралась. Спасибо!
            23 апреля 2016 00:00 Ответить
  20. 0

    Кирилл

    А можно сделать такой же поиск, но не по БД, а по массиву?
    16 мая 2016 08:15 Ответить
    1. 0

      Kylaksizov

      Добрый день Кирилл, конечно можно http://php.net/manual/ru/function.array-search.php
      16 мая 2016 08:46 Ответить
  21. 0

    stas

    У меня выдает ошибку №17
    22 мая 2016 12:03 Ответить
    1. 0

      Kylaksizov

      Значит у Вас нет нужной таблицы или поля в базе данных.
      25 мая 2016 20:56 Ответить
    2. 0

      ernekyan

      та же проблема была
      з.ы. убрал определение префикса и написал имя таблицы ручками
      1 июня 2016 13:02 Ответить
      1. +1

        Kylaksizov

        $db_referal = $mysqli -> query("SELECT * from ".PREFIX."имя-таблицы WHERE поле LIKE '%$referal%'")
        1 июня 2016 13:20 Ответить
  22. 0

    Кирилл

    Отличный скрипт, спасибо Вам!) Единственный вопрос: как сделать так, чтобы в VALUE попадал id результата поиска?
    31 мая 2016 03:54 Ответить
    1. 0

      Kylaksizov

      Спасибо Кирилл. В value никак не может попасть id, так как скрипт выбирает несколько строк из таблицы, а не одну. То есть id будет много. Может я не правильно понял Вас.
      31 мая 2016 08:04 Ответить
  23. 0

    Игорь

    не подскажете почему не могу подключиться к бд ?
    Warning: mysqli::mysqli(): (28000/1045): Access denied for user 'vsetovary'@'localhost' (using password: YES) in /var/www/ecash789_1/data/www/vsetovary.net/search.php on line 9
    
    Warning: mysqli::query(): Couldn't fetch mysqli in /var/www/ecash789_1/data/www/vsetovary.net/search.php on line 10
    Ошибка соединения с базой!
    

    пароли/имена все правильно
    4 июня 2016 21:36 Ответить
    1. 0

      Kylaksizov

      Вывод один. Если бы Вы использовали чисто мой скрипт, то работало бы. Но вы по ходу подключаете или подключаетесь сторонние скрипты или CMS, поэтому ищите проблему сами, ничем помочь не смогу.
      Смотрите логи...
      4 июня 2016 21:45 Ответить
    2. 0

      Игорь

      добился подключения к базе путем создания нового пользователя )
      но, теперь ошибка номер 17 здесь http://vsetovary.net/
      что это значит ?
      завтра с утра свяжусь с Вами.
      4 июня 2016 23:18 Ответить
      1. 0

        Kylaksizov

        Ситуация та же что и у всех остальных. Смотрите правильно ли у Вас указаны имя поля или таблицы.
        5 июня 2016 16:57 Ответить
  24. 0

    dk111

    Добрый день. Все сделал как написано, но выдает 17 ошибку. Не совсем понятно, куда прописывать имя таблицы в search.php
    6 июня 2016 10:39 Ответить
    1. 0

      Kylaksizov

      Ответ смотрите тут: http://support.kylaksizov.ru/ticket.html?id=5
      6 июня 2016 10:59 Ответить
      1. 0

        Олег

        Привет!
        У меня вопрос к тебе есть! Если ты конечно еще отвечаешь)))
        Живой поиск настроил отлично и огромное тебе спасибо за него, но есть один нюанс.
        Поиск должен работать с гугловской апишкой карт и при нажатии на элемент выдачи должно центрировать карту этой записи
        Из базы данных тянем соответственно запись по запросу , например:
        | seattle |
        В выдаче получаем например несколько строк.
        В каждой строчке в выдаче есть информация о адресе,названии и т.п.
        Но в базе есть еще поля lattitude и longitude
        Как мне прикрутить в экшене
        $(".search_result").on("click", "li", function(){
        s_user = $(this).text();}

        данные из бд и прилинковать в такую конструкцию?

        var pos = {
        lat: [some data],
        lng: [some data]
        };
        map.setCenter(pos);
        });

        Если можешь, ответь мне на емейл?
        twitter_work_one@mail.ru
        1 ноября 2016 14:35 Ответить
  25. +1

    Dima

    Спасибо))) очень просто и качественно)))))
    6 июня 2016 11:25 Ответить
  26. 0

    Виктор

    Добрый день, а как передать переменную из index в search?
    в index есть $IDGood
    в search хочу ее использовать чтоб подставлять в ссылку
    href="EditGoodsManufact.php?ID=<?= $IDGood?>"><?= $row['GOOD']?>
    19 июня 2016 19:52 Ответить
    1. 0

      Kylaksizov

      Добрый день.
      Подключайте тогда search в сам файл index.php, а вообще нужно смотреть по обстоятельствам. Я же не знаю как у Вас всё устроено.
      19 июня 2016 20:02 Ответить
      1. 0

        Виктор

        в а search.js
        ссылаться тогда на index.php?
        Попробую чуть позжу
        19 июня 2016 20:11 Ответить
  27. 0

    Сергей

    Подскажите пожалуйста, поиск происходит только при вводе одного слова, когда начинаю водить второе слово, а именно когда нажимаю пробел) - результаты поиска пропадают. Как сделать по нескольким словам?
    25 июня 2016 15:11 Ответить
    1. 0

      Kylaksizov

      Потому что в search.php стоит функция trim, которая обрезает первый и последний пробел.
      То есть, если Вы введёте пробел и потом ещё хоть одну букву после пробела, то всё будет работать.
      25 июня 2016 15:14 Ответить
      1. 0

        Сергей

        А ещё хотел спросить, если необходимо делать выборку данных, которые находятся в нескольких таблицах (например в одной таблице марки автомобиля, в другой - модели, в третей таблице модификация), дописывать скрипт много надо? То есть хотелось бы чтобы человек вводил например "bmw x6" выдавались все BMW x6, если человек вводит ещё одно слово, например "bmw x6 2014" - выводились бы только BMW X6 2014 года выпуска. Дело в том ,что Марка, модель и год выпуска находятся в разных таблицах (car_mark, car_model и car_year) поэтому даже не знаю как сразу сделать поиск по нескольким таблицам.
        25 июня 2016 15:24 Ответить
  28. 0

    ARMAN

    у меня ошибка 17
    23 июля 2016 03:19 Ответить
    1. 0

      Kylaksizov

      По поводу ошибки №17 http://support.kylaksizov.ru/faq/
      9 августа 2016 15:54 Ответить
      1. 0

        Mike

        Добрый день, ошибка номер 19, подскажите что не так?
        10 августа 2016 10:45 Ответить
        1. 0

          Kylaksizov

          У вас нет поля name в таблице которой идёт выборка. То есть в место $row["name"] укажите своё наименование поля.
          10 августа 2016 10:49 Ответить
          1. 0

            Mike

            Спасибо за оперативный ответ, сверился с вашими исходника, причиной являлось удаление оператора LIKE в запросе :)
            10 августа 2016 10:59 Ответить
  29. 0

    Гость Николай

    Добрый день Владимир! Спасибо за скрипт. Я его вставил в форму и он отлично работает в одном текстовом поле.
    Вы не знаете как вытягивать из базы другие поля и автоматически забивать их в другие текстовые поля формы.
    Например я выбрал из живого поиска название компании, а мне автоматически заполнились поля адрес и телефон взятые из базы
    Спасибо
    31 августа 2016 11:05 Ответить
    1. 0

      Kylaksizov

      Добрый день Николай.
      Это делается с помощью javascript или jquery.
      31 августа 2016 11:12 Ответить
  30. 0

    Ринат

    Добрый день.
    Подскажите пожалуйста.
    Как отправлять post данные с формы?
    Использую следующий код.
    1 ноября 2016 22:01 Ответить
    1. 0

      Kylaksizov

      Если Вы про то, как отправить данные с помощью ajax, то вот куча примеров: https://api.jquery.com/jquery.post/
      Например:
      $.ajax({
        url: url,
        type: "POST",
        data: data,
        success: success,
        dataType: dataType
      });
      1 ноября 2016 22:07 Ответить
      1. 0

        Ринат

        Благодарю за оперативность.
        Прописал следующий код ниже формы, результат не передается.
        var $form = $( this ),
            term = $form.find( "input[name='referal']" ).val(),
            url = $form.attr( "action" );
        $.ajax({
          url: url,
          type: "POST",
          data: data,
          success: success,
          dataType: dataType
        });


        В чем может быть ошибка?
        1 ноября 2016 22:18 Ответить
        1. 0

          Kylaksizov

          У Вас очень много ошибок! Жмите мой скайп внизу сайта, если есть микрофон помогу сейчас. Только в темпе.
          1 ноября 2016 22:26 Ответить
  31. 0

    Аня Бирюкова

    Добрый вечер, у меня пропадает сам инпут на сайте. ТО есть поле, где нужно вводить при загрузке страницы исчезает
    7 ноября 2016 02:53 Ответить
    1. 0

      Kylaksizov

      Проинспектируйте элемент, видимо стили какие-то блокируют - вот и вся причина.
      7 ноября 2016 07:57 Ответить
  32. 0

    Олег

    Failed to load resource: the server responded with a status of 508 (Loop Detected)

    Вот такая ошибка вылезает в консольке, да причем не одна, штук 10.
    Как с этим бороться?
    8 ноября 2016 13:17 Ответить
    1. 0

      Kylaksizov

      К сожалению, я не сталкивался с такой ошибкой. Не смогу решить этот вопрос.
      8 ноября 2016 13:36 Ответить
  33. 0

    leshiy

    Уточните пожалуйста, как можно выбранную строку передать потом по POST через форму?

    Использую такой код:
    Но форма вообще, даже не нажимается.

    Внимание! У Вас нет прав для просмотра скрытого текста.
    1 декабря 2016 11:31 Ответить
    1. 0

      Kylaksizov

      Извините, но у меня нет времени сейчас помогать, задайте вопрос на нашем форуме forum.kylaksizov.ru возможно вам помогут.
      1 декабря 2016 11:34 Ответить
      1. 0

        Алексей

        Здравствуйте.
        Спасибо огромное все отлично работает.
        Возникла необходимость расширить возможности но поскольку не силен в java и ajax не могу въехать как реализовать.
        Подскажите пожалуйста как на вашем примере возможно реализовать живой поиск по двум полям в связке.
        К примеру есть поле Артикул и Имя товара, как сделать так чтобы при вводе информации в поле артикул или в поле имя товара открывалось сразу два списка в одном шли артикулы а в другом товары подвязанные к этим артикулам ну и при нажатии на нужный артикул или имя товара из списка информация вносилась в соответствующие поля.
        Заранее благодарен, надеюсь не слишком запутано написал.
        26 декабря 2016 12:52 Ответить
  34. 0

    Алексей

    Сорь за немного корявое размещение. Не сразу сообразил.
    26 декабря 2016 23:39 Ответить
  35. 0

    Иван

    Добрый день! Скажите пожалуйста как прятать результаты при стирании символов в строке поиска? Когда пишу строку оно подгружает людей, но когда стираю оно подгружает всех(
    27 января 2017 11:24 Ответить
    1. 0

      Kylaksizov

      Нужно просто дописать условие в скрипте, что бы при минимальном количестве символов, в результате вбивалась пустота.
      27 января 2017 11:26 Ответить
      1. 0

        Иван

        Условие я так понимаю в скрипте php?
        27 января 2017 11:40 Ответить
        1. 0

          Kylaksizov

          Нет, в js
          27 января 2017 11:42 Ответить
          1. 0

            Иван

            К сожалению не силен в js ( Если есть возможно не могли бы вы мне подсказать это условие? И куда именно его вставить?
            Заранее благодарен!!!
            27 января 2017 11:48 Ответить
  36. +1

    Михаил

    Спасибо огромное за скрипт,все отлично работает.Целый день потратил на поиск такого скрипта.Теперь часто буду посещать ваш сайт.
    18 февраля 2017 22:14 Ответить
    1. 0

      Kylaksizov

      Рад, что мой пример принес Вам помощь. Буду рад видеть Вас ещё...
      19 февраля 2017 09:26 Ответить
  37. 0

    misha8529

    Дорого времени суток.А с шаблоном AdminLTE не поможешь.У тебя есть такой в магазине.Я яваскрипт вообще не знаю.Мне надо там одну настройку постоянной сделать в правом сайтбаре,что бы удалить удалить там все настройки.

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

    Можно там в настройках как то сделать чтобы он смещал контект даже после перезагрузки?
    19 февраля 2017 15:19 Ответить
    1. 0

      Kylaksizov

      Привет. Можно сделать с помощью localstorage.
      Если не можешь, то могу помочь только платно. Я бесплатно не работаю к сожалению и к счастью.
      19 февраля 2017 15:22 Ответить
  38. 0

    misha8529

    тоесть просто в настройках там это поменять нельзя?
    19 февраля 2017 15:26 Ответить
    1. 0

      Kylaksizov

      Без понятия. Я не ковырял его...
      19 февраля 2017 15:29 Ответить
  39. 0

    misha8529

    Спасибо за ответ,значит буду ковырять методом проб и ошибок :)
    19 февраля 2017 15:34 Ответить
  40. 0

    Игорь

    Здравствуйте. Великолепный скрипт, то что нужно.
    Подскажите как вывести результат поиска на этой же странице.
    Есть 3 поля (Адрес) (ФИО) (Оборудование)
    Ищем по адресу, при клике на адрес надо тут же вывести инфу с остальных полей.
    _______
    ул. Зеленая
    Петров Петр Петрович
    Dlink-Dir300

    Заранее спасибо)
    26 апреля 2017 13:33 Ответить
    1. 0

      Kylaksizov

      Просто в search.php добавляете свои поля, например $row["name"] где name - это название поля из таблицы. То есть ставите $row["user_name"] например.
      21 августа 2017 10:59 Ответить
  41. 0

    Nogardyvan

    Владимир, приветствую. Есть магазин на битриксе. Подскажите, пожалуйста, как в search.title, в выпадающем списке отключить отображение отсутствующих на складе товаров (товары с количеством 0). После нажатия кнопки поиск, товары в результате не отображаются, но в выпадающем списке они есть.
    5 мая 2017 08:57 Ответить
  42. 0

    Роман

    привет. у меня есть приложение codecanyon.net/item/noteplex-your-own-saas-notetaking-app/6031646?ref=ClientEng
    age&clickthrough_id=1039909569&redirect_back=true но там поиск плохой. можете сделать?
    super.video48@yandex.ru напишите мне
    27 июня 2017 10:04 Ответить
    1. 0

      Kylaksizov

      К сожалению у меня нет времени, сори...
      21 августа 2017 11:35 Ответить
  43. 0

    Костя

    а как витянуть данние из двух таблиц?
    9 ноября 2017 23:11 Ответить
    1. 0

      Kylaksizov

      Google поиск: sql запрос объединение двух таблиц
      10 ноября 2017 09:21 Ответить
  44. 0

    Станислав

    А чем решилась проблема у Игоря с ошибкой №17?
    18 декабря 2017 18:20 Ответить
    1. 0

      Kylaksizov

      Ошибка 17 говорит о том, что у вас не совпадают название полей в базе с теми, которые прописаны в файле.
      18 декабря 2017 19:20 Ответить
  45. 0

    Сергей

    Спасибо мужик!
    То что нужно, легко и удобно!
    25 декабря 2017 02:11 Ответить
  46. +1

    Сергей

    Привет!
    Нашёл уязвимость в этом коде. Все проверки, которые стоят на входящий параметр игнорируют великую кавычку.
    $referal = trim(strip_tags(stripcslashes(htmlspecialchars($_POST["referal"]))));

    Срабатывает он так:
    Сперва trim обрезает пробелы, потом strip_tags убирает все теги .
    Но проблемы начинаются, когда ты начинаешь передавать '(одинарная кавычка). Она не экранизируется и если в запрос, в значение $referal передать ' OR '1'='1, то запрос из изначального:
    $db_referal = $mysqli -> query("SELECT * from ".PREFIX."search WHERE name LIKE '%$referal%'")

    станет модернизированным:
    $db_referal = $mysqli -> query("SELECT * from ".PREFIX."search WHERE name LIKE [b]' '  OR '1' = '1'[/b]")

    В конкретно взятом примере, это не страшно. Но оставлять возможность изменять SQL запросы - ужасная идея.
    Поэтому, добавить к обработчику пост запроса addslashes() было бы не лишним
    28 декабря 2017 06:12 Ответить
    1. 0

      Kylaksizov

      Пример был написан на быструю руку, пропустил. Но Вы правы, конечно нужно все это делать с умом, иначе найдутся умники поломать Ваш сайт.
      30 января 2018 13:48 Ответить
  47. 0

    Гость Евгений

    Добрый день!

    72partner.ru/e/search2.php
    можете ли помочь. всё работает, но только не на русском языке. причем если обратиться к странице как к обработчику то всё норм. а в выплывающем окошке не работает

    на английском и с цифрами всё идеально но не с русским текстом
    30 января 2018 13:43 Ответить
    1. 0

      Kylaksizov

      Добрый день Евгений, я пока не вижу никаких проблем, так как по результатам поиска выдает сообщение, что ничего не найдено. Может я не там смотрю. Советую изложить все подробности в этой теме https://forum.kylaksizov.ru/forum/threads/%D0%96%D0%B8%D0%B2%D0%BE%D0%B9-%D0%BF
      %D0%BE%D0%B8%D1%81%D0%BA.15/ и я с радостью Вам помогу. И прикрепите скриншоты ошибки, что бы я понимал где что смотреть.
      30 января 2018 13:46 Ответить
  48. +1

    Гость Евгений

    собрал всё с нуля изначально в utf-8 и всё работает. где то была ошибка. всё отлично работает. Классный код
    2 февраля 2018 09:57 Ответить
    1. 0

      Kylaksizov

      Рад, что у Вас получилось!
      2 февраля 2018 09:59 Ответить
  49. 0

    Виталий

    Добрый день.
    Все подключил все хорошо работает, но вот возникла потребность сделать такую фишку: начать поиск только если в соседнем поле
    <select> ... </select>

    вот такая html разметка
    <input type='text' name='poisk_text' value='' id='who' placeholder='Введите текст или фразу'>
    <ul class="search_result"></ul>
    <select name='kriterij_poiska' id='poisk_nulja'>
        <option value='vse_polja'>Поиск по всем полям</option>
        <option value='0'>Skolotāja</option>
    </select>

    пробовал так:
    $(function(){
        $('#poisk_nulja').change(function(e){
            var nolj = $("#poisk_nulja :selected").val();
            if (nolj = 0) {
                // тут Ваш код, но не работает
            }
        });
    });
    14 февраля 2018 02:06 Ответить
    1. 0

      Kylaksizov

      Сравнение ставится так == а не одним равно, то есть должно быть вот так:
      if (nolj == "0")
      и 0 желательно взять в кавычки, так как это строка а не число.
      14 февраля 2018 05:28 Ответить
      1. 0

        Виталий

        Спасибо помогли, но какая та мистика, вчера перепробовал все и не чего не работало, а сегодня все заработало.
        По поводу сравнения, это опечатка, а вот по поводу кавычек разве для сравнения чисел нужны кавычки?
        14 февраля 2018 22:43 Ответить
        1. 0

          Kylaksizov

          Я написал желательно. Если бы сравнивали например так ===
          15 февраля 2018 06:39 Ответить
  50. 0

    Алксандр

    Пример хороший!
    Будет ли работать на php7.1 в связке с redbean php?
    27 марта 2018 20:02 Ответить
    1. 0

      Kylaksizov

      Если правильно настроить все, то конечно будет.
      27 марта 2018 20:04 Ответить
  51. 0

    Дамир

    Доброго времени суток. А как-то можно добавить проверку по еще одному полю из таблицы? Мне нужен поиск клиентов пользователя. Ваш скрипт работает шикарно, но выводит клиентов всех пользователей. Хотелось бы отсечь не нужных и вывести только клиентов пользователя)
    29 марта 2018 17:52 Ответить
    1. 0

      Kylaksizov

      Вам нужно посмотреть немного уроки по SQL запросам, я не могу ничего сказать по вашему вопросу, так как не вижу код.
      10 апреля 2018 06:14 Ответить
  52. 0

    bass_pro

    Помогите допилить этот скрипт!

    Мне нужно чтоб выводились в вариантах поиска пример - Москва, но передавало в get из таблицы ID

    localhost/mega/?referal=Sochi+URSS Сейчас получается такой вывод через GET
    А нужен такой
    localhost/mega/?referal=1
    9 апреля 2018 19:57 Ответить
    1. 0

      Kylaksizov

      Ну вам нужно просто поиск по id, и это будет считаться обычной выборкой по полю, а не поиск. Это два разных по смыслу запроса. Например: SELECT * FROM table EHERE id = 1
      10 апреля 2018 06:17 Ответить
      1. 0

        Bass_pro

        Может я не правильно изложил мысли...=)
        Вот ссылка на скрин с схемой.
        Думаю так будет проще понять.
        10 апреля 2018 20:07 Ответить
        1. 0

          Kylaksizov

          Я получил ссылку на скрин, ненужно накидывать их по 10 штук. Не знаю чем Вам помочь. Заказывайте на фрилансе работу.
          10 апреля 2018 21:38 Ответить
  53. 0

    12

    Здравствуйте, возник вопрос. После вставки поиска на сайт он перестает работать, а отдельно работает
    16 мая 2018 21:58 Ответить
    1. 0

      Kylaksizov

      Нужно значит разбираться в ваших скриптах...
      16 мая 2018 22:00 Ответить
  54. 0

    Вячеслав

    Отлично работает, спасибо за такой лёгкий код без тяжелых плагинов! Скажите, можно ли сделать чтобы сразу после выбора делалась отправка (без нажатия кнопки)?
    19 мая 2018 16:43 Ответить
    1. 0

      Artyom

      Да можно через keyup можно без кнопки или через blur
      29 августа 2018 00:34 Ответить
  55. 0

    slon

    Здравствуйте, возник вопрос. После ввода в поиск, он все выводит правильно, но как сделать чтобы нажимая на результат, осуществлялся переход по id
    26 мая 2018 22:12 Ответить
  56. 0

    Роман

    Этот поиск долго время работал у меня на сайте. 
    До тех пор пока я не обрезал расширения файлов в адресной строке (удалил .php).
    После этого поиск работать перестал. Подскажите как его вернуть? 
    12 октября 2018 09:45 Ответить
    1. 0

      Kylaksizov

      На сколько я понял, Вы изменили путь. Я на словах не помогу, нужно смотреть.
      12 октября 2018 10:07 Ответить


Отправить

В корзине: 0 шт.

на сумму: 0

Всего: 0

Оформить заказ Очистить корзину