Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Заполнение значения в поле соответствующего выбранному из списка (https://javascript.ru/forum/dom-window/46595-zapolnenie-znacheniya-v-pole-sootvetstvuyushhego-vybrannomu-iz-spiska.html)

orangebox 16.04.2014 12:17

Заполнение значения в поле соответствующего выбранному из списка
 
Добрый день!

Есть таблица в БД с тремя полями: id, name, adress.
Добавил на форму список <select> который заполняется значениями из поля name.

Мне нужно чтобы при выборе из списка соответствующее значение поля adress попадало в другое поле этой же формы.

На скорую руку набросал вот так:
<select name="prison_id"  class="reg_input_txt" id="1" onchange="document.getElementById('2').value = document.getElementById('1')[document.getElementById('1').selectedIndex].value">
                <option value="" disabled selected>не выбрано</option>
                <?php include "db_connect.php"; 
                $sql = "SELECT * FROM prison where active=1 ORDER BY `id` ASC";
                  if ($result = $mysqli->query($sql)) {
                    while ($prison = $result->fetch_object()){?>
                      <option value="<?echo $prison->adress;?>"><?echo $prison->name;?></option>                    
                    <?}
                  }
                ?>
</select><br>

<textarea class="reg_txtarea" name="" id="2" cols="43" rows="5" disabled></textarea>


Решение не устраивает тем, что в обработчик формы отправляется значение поля adress, а хотелось бы чтобы туда отправлялось значение поля id.

Подскажите, как мне это реализовать?

jsnb 16.04.2014 13:00

Не понял, а где у вас в селект эти id попадают? Откуда их брать то надо?

orangebox 16.04.2014 13:15

Цитата:

Сообщение от jsnb (Сообщение 307929)
Не понял, а где у вас в селект эти id попадают? Откуда их брать то надо?

В том то и дело, что в селект мне пришлось поместить adress чтобы выводить его в другом элементе формы. И id туда уже не запихнуть.

Наверно, эту задачу изначально надо было по-другому решать. Вот и спрашиваю совета бывалых.

jsnb 16.04.2014 13:20

Так а в чем проблема id запихнуть в какой-нибудь data-id атрибут option?
Что-нить типо этого:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>

<select onchange=" alert(this[this.selectedIndex].getAttribute('data-id') )">
 <option data-id="1" value="aaa">aaa111</option>
 <option data-id="12" value="bbb">aaa222</option>
 <option data-id="15" value="ccc">aaa333</option>
</select>

</body>
</html>


Или вы уже не можете изменить генерацию селекта?

orangebox 16.04.2014 13:35

Цитата:

Сообщение от jsnb
Так а в чем проблема id запихнуть в какой-нибудь data-id атрибут option?

Это именно то что нужно! Я как то подзабыл, что в <option> можно произвольный атрибут загнать((

В итоге код таков:

<select name="prison_id"  class="reg_input_txt" id="1" onchange="document.getElementById('2').value = this[this.selectedIndex].getAttribute('adress')">
                <option value="" disabled selected>не выбрано</option>
                <?php include "db_connect.php"; 
                $sql = "SELECT * FROM prison where active=1 ORDER BY `id` ASC";
                  if ($result = $mysqli->query($sql)) {
                    while ($prison = $result->fetch_object()){?>
                      <option value="<?echo $prison->id;?>" adress="<?echo $prison->adress;?>"><?echo $prison->name;?></option>                    
                    <?}
                  }
                ?>
</select><br>

<textarea class="reg_txtarea" name="" id="2" cols="43" rows="5" disabled></textarea>


Спасибо за помощь!

jsnb 16.04.2014 13:37

Цитата:

Сообщение от orangebox (Сообщение 307940)
Это именно то что нужно! Я как то подзабыл, что в <option> можно произвольный атрибут загнать((

Лучше всё-таки использовать data-* атрибуты т.к. в HTML5 именно они являются валидными.


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