Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получение информации из БД через Javascript (https://javascript.ru/forum/dom-window/44498-poluchenie-informacii-iz-bd-cherez-javascript.html)

Alex351960 22.01.2014 15:51

Получение информации из БД через Javascript
 
Добрый день:) Решил создать для себя небольшой проект (сразу говорю, что не в комерческих целях). Проект писал на php (Javascript редко использовался, потому что его очень плохо знаю). Но вот столкунлся с одной проблемкой . Опишу подробнее:
У меня есть маленькая форма с инпутом type='text'

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

После этого я из списка выбираю нужный мне город, название которого автоматически заполняет поле

Скажите, пожалуйста, можно это как-то реализовать? Есть ли готовые решения? Заранее большое спасибо!:thanks:

ksa 22.01.2014 16:08

Цитата:

Сообщение от Alex351960
можно это как-то реализовать?

Разумеется! :yes:
http://javascript.ru/forum/jquery/44...ii-cherez.html

Alex351960 22.01.2014 16:57

Цитата:

Сообщение от ksa (Сообщение 293427)

Спасибо большое! :thanks: :thanks: :thanks: Буду разбираться.

Alex351960 22.01.2014 19:07

Цитата:

Сообщение от ksa (Сообщение 293427)

А как сделать так, чтобы города были записаны не в файле, а брались из базы данных?

ksa 22.01.2014 22:50

Цитата:

Сообщение от Alex351960
А как сделать так, чтобы города были записаны не в файле, а брались из базы данных?

Так ты же
Цитата:

Сообщение от Alex351960
Проект писал на php

Вот и бери их из БД. :)

Alex351960 22.01.2014 23:09

Цитата:

Сообщение от ksa (Сообщение 293503)
Так ты же

Вот и бери их из БД. :)

Дело не в этом. Я имею в виду то, что города подгружались бы из бд после ввода первых букв города (как я понимаю это делается с помощью ajax). Такое можно как-то сделать?

ksa 23.01.2014 08:40

Цитата:

Сообщение от Alex351960
Я имею в виду то, что города подгружались бы из бд после ввода первых букв города (как я понимаю это делается с помощью ajax). Такое можно как-то сделать?

Начни хоть с этого...

Alex351960 23.01.2014 16:14

Цитата:

Сообщение от ksa (Сообщение 293525)
Начни хоть с этого...

Спасибо. А если мне использовать вариант с тем, что все города будут записаны в отдельный файл js, дабы не захламлять я html код?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.input_form { position:relative; float: left; width:387px;  margin-top:10px; height:50px;   }
.input_form input{ border: none; position:absolute; display:block; padding:0 5px; width:250px; line-height:23px; height:23px; font-family:Tahoma, Geneva, sans-serif; font-size:15px; background:#d9d9d9;}
.from_help { position:absolute; left:0; top:23px; border:1px solid #d9d9d9; padding:0 4px; width:250px; border-top:none; background:#fff; z-index:2; }
</style>
<script>
$(document).ready(function () {
    function like(str) {
        var town_from = [
            'Альметьевск',
            'Москва',
            'Армавир',
            'Артем',
            'Архангельск',
            'Астрахань',
            'Балаково',
            'Барнаул',
            'Белгород',
            'Березники',
            'Бийск',
            'Благовещенск',
            'Борисоглебск',
            'Братск',
            'Брянск',
            'Буденновск',
            'Великий Новгород',
            'Владивосток',
            'Волгоград',
            'Волжский',
            'Вологда',
            'Воронеж',
            'Дзержинск',
            'Екатеринбург',
            'Иваново',
            'Ижевск',
            'Иркутск',
            'Йошкар-Ола',
            'Казань',
            'Калининград',
            'Каменск-Уральский',
            'Кемерово',
            'Киров',
            'Кострома',
            'Краснодар',
            'Красноярск',
            'Курган',
            'Курск',
            'Липецк',
            'Магнитогорск',
            'Миасс',
            'Мурманск',
            'Набережные Челны'
        ],
            html = '',
            str = new RegExp("^" + str, "i");
        for (var i = 0; i < town_from.length; i++) {
            if (str.test(town_from[i])) html += '<div class="add">' + town_from[i] + '</div>'
        }
        return html
    }
    $("#from").on("input", function () {
        var val = this.value;
        $('#from_help').html(val.length ? like(val) : '')
    });

    $('#from_help').on('click', '.add', function () {
        $("#from").val($(this).text())
        $('#from_help').html('');
    });
})
</script>
</head>
<body>
<div class="input_form">
	<input id="from" type="text" />
	<div id="from_help" class="from_help "></div>
</div>
</body>
</html>

Можно ли как-то занести города в отдельный файл?

ksa 24.01.2014 11:13

Цитата:

Сообщение от Alex351960
А если мне использовать вариант с тем, что все города будут записаны в отдельный файл js, дабы не захламлять я html код?

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


Часовой пояс GMT +3, время: 00:37.