Есть выпадающий список находящийся в ячейке таблицы с ФИО сотрудников, как сделать чтобы в определенные ячейки вывелись все остальные поля соответствующего сотрудника из таблицы Сотрудников
<tr>
<td>
<select name="employees">
<option value="" >Выберите сотрудника</option>
<?PHP
$res = mysql_query('select id, имя, фамилия, отчество from `employees`');
while($row = mysql_fetch_assoc($res)){
?>
<option value="<?=$row['id']?>"><?=$row['имя'] ?> <?=$row['фамилия']?> <?=$row['отчество']?></option>
<?
}
?>
</td>
</tr>
И так, поскольку Вы уточнили Ваше условие, постараюсь улучшить свой ответ. Вы уже привели в вопросе код, для заполнения select
всеми ФИО сотрудников. Далее, если нужно обновить страницу, мы можем рассмотреть два варианта:
Первый вариант: Повесить событие onchange
на изменение select
. В этом событии, мы получаем value
(Вы указали там id
), и по этому id
формируем AJAX
запрос к какому-то php-скрипту, передав ему через GET
или POST
нужный id
, который будет загружать остальные данные, и возвращать их, например, через разделитель. Получив данные, применяем split
по символу-разделителю, и выводим полученные данные в соответствующее (оставшиеся) поля таблицы.
Плюс этого способа: динамичность - любое изменение сразу формирует обновление таблицы.
Минус: JS может быть отключен в настройках браузера.
Исходя из этого, можно применить дублирующий метод, или, если не нужна автоматическая загрузка данных, то можно использовать второй вариант:
Итак, есть select
, у которого выбран какой-то пункт, добавив под ним кнопку submit
, и разместив эти элементы внутри формы. Можно указать action
формы эту же страницу, метод передачи, можно выбирать POST
для скрытия данных от их отображения в адресе, или же наоборот, GET
- то указывать их в адресе страницы, тогда зная id
, можно будет сразу найти нужного сотрудника, не выбирая его в списке. Итак, внутри страницы, в зависимости от того, какой метод передачи был выбран, нужно проверить, заполнен ли массив (_POST
или _GET
), и если в нем есть данные, то в select
указать запрашиваемый id
, а так же сформировать по этому id
второй запрос, для получения оставшихся данных, и вывести их, посредством php
.
А какова полная структура данных таблицы Сотрудников
?
По логике вопроса, нужно делать запрос:
SELECT * from `employees`
Вы получите ассоциативный массив, и в input
первой ячейки выводите ФИО, как Вы указали, далее, если количество оставшихся полей известно, то просто выводите их, иначе, получаете количество полей из запроса, отнимаете 4 (учитывая, что Вам не нужно уже обрабатывать ФИО и id
), и через цикл добавляете новые ячейки таблицы (например, через echo
), а в них уже заполняете оставшиеся поля таблицы, полученные из запроса.
P. S. Это все, при условии, что я правильно понял объяснение Вашего вопроса.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
При попытке в посреднике проверить url и перенаправить пользователя на метод контроллера, Laravel пишет, что метод в контроллере не определен...
Всем приветЕсть приложение на Laravel, где есть 2 основные сущности: юзер и компания