- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Мне нужно чтобы при заполнении формы, данные искались в базе и предлагались к выбору.
Сам я JS не знаю, но на сайте у меня уже был похожий лайф поиск и я взял код оттуда и немного изменил:
jQuery(document).ready(function() {
jQuery(document).on('keyup', '#search', function(e) {
var name = jQuery(this).val();
if(name.length > 2) {
jQuery('#search-results').html('');
jQuery.ajax({
'type': 'GET',
'url': '/index.php',
'dataType': 'json',
'data': {
'option': 'com_form',
'view': 'item',
'format': 'json',
'task': 'search',
'name': name
},
'success': function (res) {
jQuery('.msg').html('');
jQuery('#search-results').html('');
jQuery.each(res, function (n, item) {
jQuery('#search-results').append('<div class="mod-row">'+ item.name +'</div>');
});
if(res) {
jQuery('#search-results').show();
}else{
jQuery('#search-results').hide();
}
}
});
}
});
});
Теперь все работает, слова находит - но как сделать чтобы по одному из найденных слов можно было кликнуть и оно бы вставилось в инпут формы?
Гугл по autocomplete выдаст кучу вариантов.
Jquery autocomplete
https://jqueryui.com/autocomplete/
Я не знаю синтаксиса JS и не смогу вставить что-то без ошибок в свой код :(
Гуглил, читал, вот что понял из прочитанного.
Нужно из полученного ответа создать массив и передать его в форму.
Попытался сделать это так изменив действующий код (выделил жирным)
jQuery(document).ready(function() {
$("#search").autocomplete({
jQuery(document).on('keyup', '#search', function(e) {
var name = jQuery(this).val();
if(name.length > 2) {
jQuery('#search-results').html('');
jQuery.ajax({
'type': 'GET',
'url': '/index.php',
'dataType': 'json',
'data': {
'option': 'com_form',
'view': 'item',
'format': 'json',
'task': 'search',
'name': name
},
'success': function (res) {
jQuery('.msg').html('');
jQuery('#search-results').html('');
var suggestions = [];
jQuery.each(res, function (n, item) {
suggestions.push(item.name);
jQuery('#search-results').append('<div class="mod-row">'+ item.name +'</div>');
});
add(suggestions);
if(res) {
jQuery('#search-results').show();
}else{
jQuery('#search-results').hide();
}
}
});
}
});
});
});
В итоге и поиск перестал работать и автокомплит не заработал (((
Гуглил, читал, вот что понял из прочитанного.
Нужно из полученного ответа создать массив и передать его в форму.
Нет наверное нужно сделать что-то вроде этого:
Вместо #search селектор того инпута куда текст вставить нужно.
Гуглил, читал, вот что понял из прочитанного.
Про автокомплит что-то не дочитали. Примерно так должно быть
В итоге методом тыка сделал так, выкинул лишнее, внутри все собираю пушем в архив, а автокомплит отдельной функцией, все работает:
и в инпут еще добавил
Проще же можно _jsfiddle.net/60v9ebmw/
onep, а как в ваш последний пример корректно вставить?
'type': 'GET',
'url': '/index.php',
'dataType': 'json',
'data': {
'option': 'com_form',
'view': 'item',
'format': 'json',
'task': 'search',
'name': name
},
И еще вопрос - трижды встречающееся #search - это id инпута?
как в ваш последний пример корректно вставить?
Так же как и в вашем коде вставляйте _jsfiddle.net/m01g92j4/1/
трижды встречающееся #search - это id инпута?
Да, <input id="search" type="text" />
Ваш
и
из примера - это одна и та же функция. Судя по коду, как-то так должно сработать.
трижды встречающееся #search - это id инпута?
Именно оно.