Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 33

При клике по ссылке вставить её текст в поле ввода

04.01.2018, 16:10. Показов 2830. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

Очень прошу знающих людей мне помочь. Есть скрипт "живого поиска". В поле input type вводится запрос и высвечивается список совпадений. Но при нажатии на результат поиска - открывается ссылка. Мне же надо, что бы выбранный результат становился в input type, в который и вводился поиск.

Как я понимаю, тут менять надо в js.

Сам инпут

HTML5
1
2
3
4
5
6
7
    
<div id="main">
        <div class="icon"></div>
        <input type="text" id="search" autocomplete="off">
        <h4 id="results-text">Result: <b id="search-string">Array</b></h4>
        <ul id="results"></ul>
</div>
И сам JS

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$(document).ready(function() {
 
    $('div.icon').click(function(){
        $('input#search').focus();
    });
 
    function search() {
        var query_value = $('input#search').val();
        $('b#search-string').text(query_value);
        if(query_value !== ''){
            $.ajax({
                type: "POST",
                url: "search.php",
                data: { query: query_value },
                cache: false,
                success: function(html){
                    $("ul#results").html(html);
                }
            });
        }return false;
    }
 
    $("input#search").live("keyup", function(e) {
        clearTimeout($.data(this, 'timer'));
 
        var search_string = $(this).val();
 
        if (search_string == '') {
            $("ul#results").fadeOut();
            $('h4#results-text').fadeOut();
        }else{
            $("ul#results").fadeIn();
            $('h4#results-text').fadeIn();
            $(this).data('timer', setTimeout(search, 100));
        };
    });
 
});
Помогите, пожалуйста, т.к. с Js я вообще не знаком
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2018, 16:10
Ответы с готовыми решениями:

Вставка текста при клике на поле ввода
Всем привет. Делаю крестики нолики. Как сделать так чтобы при клике по полю ввода появлялся текст поочередно. Первый клик-Х, второй-О,...

Как сделать всплывающее окно, при клике на поле ввода?
Пример можно посмотреть тут: https://appleid.apple.com/account?&amp;localang=US-EN&amp;app_id=2083&amp;returnURL=http%3A%2F%2Fstore.apple.com%2Fus...

Вставить текст в div при клике на ссылку
нужно сделать что бы при клике на разные ссылки открывалась форма с разным заголовком. проблема в том что ссылка в виде картинки. я...

6
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
04.01.2018, 16:40
У вас при вводе значений в поле отправляется аякс запрос к серверу и полученный результат от сервера подставляется в ul#results, конкретно вот эти строчки:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
    function search() {
        var query_value = $('input#search').val();
        /* ... */
            $.ajax({
                /* ... */
                success: function(html){
                    $("ul#results").html(html);
                }
            });
        }return false;
    }
Предположу что в html в функции success находится примерно следующее:
HTML5
1
2
<li><a href="/search/query1">query1</a></li>
<li><a href="/search/query2">query2</a></li>
Но лучше бы вы показали что там приходит от сервера.
0
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 33
04.01.2018, 18:10  [ТС]
Спасибо, что не прошли мимо. Вот сам PHP код поиска

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$html = '';
$html .= '<li class="result">';
$html .= '<a target="_blank" href="urlString">';
$html .= '<h3>nameString</h3>';
$html .= '<h4>functionString</h4>';
$html .= '</a>';
$html .= '</li>';
 
$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = $tutorial_db->real_escape_string($search_string);
 
if (strlen($search_string) >= 1 && $search_string !== ' ') {
    $query = 'SELECT * FROM ........';
 
    $result = $tutorial_db->query($query);
    while($results = $result->fetch_array()) {
        $result_array[] = $results;
    }
 
    if (isset($result_array)) {
        foreach ($result_array as $result) {
 
            $display_function = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['function']);
            $display_name = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['name']);
            $display_url = 'http://php.net/manual-lookup.php?pattern='.urlencode($result['function']).'&lang=en';
 
            $output = str_replace('nameString', $display_name, $html);
 
            $output = str_replace('functionString', $display_function, $output);
 
            $output = str_replace('urlString', $display_url, $output);
 
            echo($output);
        }
    }else{
 
        $output = str_replace('urlString', 'javascript:void(0);', $html);
        $output = str_replace('nameString', '<b>No Results Found.</b>', $output);
        $output = str_replace('functionString', 'Sorry :(', $output);
 
        echo($output);
    }
}
<li> с ссылкой и формируется.
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
04.01.2018, 20:09
Было бы лучше, если бы вы показали уже сформированный пример разметки, чем скрипт PHP. Что в итоге должно вставляться в поле input: содержимое nameString, functionString или urlString? И уточните версию jQuery.

Добавьте в $(document).ready(function () {});
JavaScript
1
2
3
4
5
6
7
8
9
$(document).ready(function() {
 
    /* code omitted */
        
    $('ul#results').on('click', 'li.result a', function (e) {
        e.preventDefault();
        $('input#search').val($(this).find('h3').text());
    });
});
0
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 33
05.01.2018, 09:47  [ТС]
Сформированный пример разметки - это как выглядит html на выходе?

Вставляться в input должно значение functionString.

jQuery 1.7.1 min версия.

Добавлено через 6 минут
Добавлено:

Вывод html такой


HTML5
1
2
3
4
5
6
<ul id="results" style="display: block;">
<li class="result">
<h3>nameString</h3>
<h4>functionString</h4>
</li>
</ul>
Добавлено через 10 часов 28 минут
j2FunOnly, спасибо большое за помощь. Все заработало. Только есть еще маленькая просьба, может Вы смогли бы подсказать, как сделать, что бы после того, как значение встало в input - весь результат поиска пропадал
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
05.01.2018, 10:22
Цитата Сообщение от huntry Посмотреть сообщение
Вставляться в input должно значение functionString.
... весь результат поиска пропадал
Так же как и весь результат поиска туда попадает, только надо указать пустую строку: $('ul#results').html('');. Помните мой первый ответ?
JavaScript
1
2
3
4
5
6
7
8
9
10
$(document).ready(function() {
 
    /* code omitted */
        
    $('ul#results').on('click', 'li.result a', function (e) {
        e.preventDefault();
        $('input#search').val($(this).find('h4').text());
        $('ul#results').html('');
    });
});
1
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 33
05.01.2018, 16:37  [ТС]
Большое человеческое Вам спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2018, 16:37
Помогаю со студенческими работами здесь

Как создать кнопку или поле ввода при клике мышью на форме?
Привет, требуется помощь с лабкой, но похоже я стою на асфальте в лыжи обутый. Не могу понять даже с чего начать. Хоть подскажите куда...

Как создать кнопку или поле ввода при клике мышью на форме? - C#
Привет, требуется помощь с лабкой, задание 3 курса универа, с# только начали учить в этом семестре.Не могу понять даже с чего начать....

При клике по ячейке вставить текст в другую ячейку этой же таблицы
Здравствуйте! У меня есть таблица: &lt;table&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td id=&quot;s1&quot;...

Нужно чтобы в PHP текст убирался в поле при клике на него
Делаю форму отправки сообщений нужно чтобы когда пользователь кликнет в поле текст в нём убирался и заполнялся его данными которые он...

Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по умолчанию
Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по умолчанию? Т.е. надо чтоб по ходу выполнения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru