@op482230
Начинающий в сфере Веб-программирование

Как сделать что бы при выборе selct(option) заполнялись другие text-box из одной таблицы БД?

Здравствуйте.

Как сделать так, что бы при выборе id пользователя (это будет делаться через выпадающий список) их поля авто заполнялись в рядом стоящие text-box`ы?

То есть у меня например есть id, name, surname, age.

При выборе id например первого, то он выдаст его имя, фамилию и возраст в текст боксе.

Если есть какие-то примеры (с описанием) в интернете можно ли их ссылки. Искал около 2-х дней. Результата ноль
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
l1tero
@l1tero
Быдлокодер
Нам понадобится jQuery и 2 страницы на PHP.
Первая страница: Пишем нам select(option) с заполнением из базы. В атрибут "value" selection заносим id записи из базы соответствующий (он нам понадобится для поиска остальных полей имя, фамилии возраста и т.п.)
Вторая страница: Пишем функцию на пхп типа:
function getCom($id){
    return YII::$app->db->createCommand('Select comment from ИМЯ ТАБЛИЦЫ where id='.$id)->queryOne();
}
?>

Написал на YII2 но принцип такой - по ID получать данные из таблицы и вызываем функцию на странице:
<?= getCom($_GET['id'])['comment'];?>
отмечу, что $_GET['id'] это параметр, передаваемый с первой странице. Хочешь обозвать его value - пишешь value и при отправке меняешь код jQuery, но об этом ниже. Так же при выводе значений на странице 2 лучше обернуть каждое значение в див с отдельным id или классом, чтобы было легче искать.
С PHP закончили.
Возвращаемся на страницу 1 и пишем код на jQuery:
$(document).ready(
            function () {
                $('#getcomm').on('click', function () {  // Сделал на клик по кнопке с iD getcomm  для удобства
                    var id = $('#select option:selected').val(); // Берем из выбранного Select'a значение ID
                    $.ajax({
                        url: '/site/test2?id='+id,  // Передаем данные на страницу два с прикреплением ID
                        type: 'GET',
                        dataType: 'html'
                    })
                            .done(function (datas) {
                                var response= $(datas).find('#response').text(); // ищем на странице то, что нам надо по ID или классу, которые присваивали на странице 2
                        $('#com').val(response); // записываем в инпут с ID com значение полученное выше
                            });

                });
            });


Вариант 2 - менее гибкий в плане верстки, но и менее громоздкий в плане кода. Обертываем кнопку и select из примера выше в и даем select имя "sel"
По клику на кнопку будет происходить отправка данных POST. Ниже формы пишем код:
if(isset($_POST['sel'])){
    $comm=YII::$app->db->createCommand('Select comment from ИМЯ ТАБЛИЦЫ where id='.$_POST['sel'])->queryOne();
    echo '<input value='.$comm['comment'].'>';
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@shushpanio
shushpanio
В программировании не силён так что готов просто описать алгоритм.
1. После выбора ID из списка срабатывает процедура отправляющая запрос вида
SELECT id, name, surname, age
FROM table_name
WHERE id=[выбранный ID]
2. получаем на выходе данные которые потом распихиваем в соответствующие поля
т.е. name в text-box ИМЯ, surname в text-box ФАМИЛИЯ и т.д.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы