Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Tomass673
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 2
#1

Автозаполнение полей по клику на результат "живого" поиска - jQuery

16.02.2018, 03:50. Просмотров 151. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток. Не судите строго, пока только учусь. Не пойму как осуществить автоматическое заполнение полей по клику на результат "живого" поиска по БД.Пользователь вводит в окно поиска некоторое наименование, для которого в БД имеется адрес и телефон. С помощью ajax на сервер отправляются значения ввода пользователя в строку поиска, сервер ищет подходящее наименование, а также адрес и телефон по id наименования. В ответ ajax получает наименование(выводит его), адрес и телефон(не показывает). Подходящее наименование выводится в всплывающий список. Нужно чтобы адрес и телефон по клику на наименование автоматически подставлялись в поля таблицы.
http://www.cyberforum.ru/javascript-jquery/thread1372471.html

HTML5
1
2
3
4
5
6
7
8
9
<body>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="js/search.js"></script>
  <p>Наименование</p>
<input type="text" name="referal" placeholder="поиск" value="" class="who"  autocomplete="off">
<ul class="search_result"></ul>
<table>
    <tr><th>Адрес</th><th>Телефон</th></tr>
<td>Вот сюда адрес</td><td>Сюда телефон</td>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(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(); //вывод данных в список
               
           }
       })
    }
})
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
<?php
 
define("DB_HOST","localhost");
define("DB_NAME","test"); 
define("DB_USER","root"); 
define("DB_PASSWORD",""); 
define("PREFIX",""); 
 
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$mysqli -> query("SET NAMES 'utf8'") or die ("Ошибка соединения с базой!");
$address ;
if(!empty($_POST["referal"])){ 
    $referal = trim(strip_tags(stripcslashes(htmlspecialchars($_POST["referal"]))));
 
    $db_referal = $mysqli -> query("SELECT table_id, table_name from ".PREFIX."table WHERE table_name LIKE '%$referal%'")
    or die('Ошибка №'.__LINE__.'<br>Обратитесь к администратору сайта, сообщив номер ошибки.');
    while ($row = $db_referal -> fetch_array()) {
        echo "\n<li>".$row["table_id"]." ".$row["table_name"]."</li>";
    $id = $row["table_id"];
   $db_address = $mysqli -> query("SELECT table_address from ".PREFIX."table WHERE table_id LIKE '%$id%'")
    or die('Ошибка №'.__LINE__.'<br>Обратитесь к администратору сайта, сообщив номер ошибки.');
    }
    while ($row = $db_address -> fetch_array()) {
        $address = $row["table_address"];
    $db_tel = $mysqli -> query("SELECT table_tel from ".PREFIX."table WHERE table_id LIKE '%$id%'")
    or die('Ошибка №'.__LINE__.'<br>Обратитесь к администратору сайта, сообщив номер ошибки.');
    }
    while ($row = $db_tel -> fetch_array()) {
        echo "<li>".$row["table_tel"]."</li>";
    $tel = $row["table_tel"]}
}
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2018, 03:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Автозаполнение полей по клику на результат "живого" поиска (jQuery):

Цикл: по каждому клику на "unload" крайний блок должен исчезнуть, по "load" восстановиться. Ц
Здравствуйте. Я начал осваивать jquery самостоятельно по задачнику в интернете,...

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания...

Получить значение из {"text1":"val1","text2":"val2","text3":{"text":"val"}}
Есть такая строка var my =...

Имитация живого поиска
Работою с js недавно, поэтому знаю немного. Нашол на...

Создание браузерной CAD, "math scetchpad", "Geogebra", "Живая геометрия""
Создаю браузерную версию CAD системы, для обучения школьников стереометрии и...

2
fanatikus
1073 / 1070 / 503
Регистрация: 17.11.2012
Сообщений: 4,725
18.02.2018, 00:40 #2
сделайте два этапа
1. автокомплит(это у вас уже есть)
формируете список как-то так
PHP
1
echo "\n<li class='s-complit' data-id='".$row['table_id']."'>". $row["table_name"] . "</li>";
2.
вешаете клик на элементы списка
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
 $('.search_result').on('click', '.s-complit', function(){
     $.ajax({
            type: 'post',
            url: "page.php", 
            data: {'id':$(this).data('id')},
            dataType: 'json',
            success: function(data){
                $("#address").html(data.address);
                $("#tel").html(data.tel);
           }
      })
 })
в обработчике
PHP
1
2
3
4
5
6
7
    // формируете такой массив
    $result = array(
        'tel' => $row['tel'],
        'address' => $row['address']
    );
    // возвращаете json
    echo json_encode($result);
HTML5
1
<td id="address">Вот сюда адрес</td><td ="tel">Сюда телефон</td>
Добавлено через 8 минут
p.s.
опечатка
Цитата Сообщение от fanatikus Посмотреть сообщение
<td ="tel">Сюда телефон</td>
HTML5
1
<td id="tel">Сюда телефон</td>
Добавлено через 18 минут
p.s.
зачем LIKE для выборки из базы телефона и адреса
просто where table_id = '".$id."'
1
Tomass673
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 2
18.02.2018, 04:02  [ТС] #3
fanatikus, Премного благодарен Долго бился с этой проблемой, а решение то оказалось достаточно лаконичным и простым
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2018, 04:02
Привет! Вот еще темы с решениями:

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

Заполнение 2ух полей форм при нажатии на ссылку "Заказать"
Доброго времени суток, уважаемые форумчане! Нужна помощь! Есть страница с...

Создать программу такую, что пользователь вводит число, а мы ему выдаём "-лет" или "-год" "-года"
4)Создать программу такую, что пользователь вводит число, а мы ему выдаём...

Очистка несколько полей с селектором "." класс
Привет всем, простите уж за такой вопрос, возможно ли примерно таким путем...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru