Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Из одного SELECT заполнить 2 поля
 
 автор: larush2   (15.03.2011 в 14:39)   письмо автору
 
 

Привет всем.
Давно уже рботает кусок кода, где имени поля ставится в соотвтетствие какая-то из таблиц и формируется SELECT- в тексте понятно что nm_mysp1 изменяет значение в зависимости от выбора элемента из списка.

<script language="Javascript" type= "text/javascript"> 
function selSps(q){
if (document.getElementById)
  {
  var sel1 = document.getElementById('nm_mysp1');
  sel1.value = q.value;
  }
}
</script>

<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp1 >
<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp2 >
<td><select name='spr_sps' onchange=selSps(this)>
        <option value=1>A1</option>
        <option value=2>A2</option>
        <option value=3>A3</option>
 </select>


Появилась задача - сформировать значения второго поля в текстовом виде, и чтобы не делать 2 одинаковых списка, хотелось бы использовать один. Т.е. выбираем 1-й пункт и nm_mysp1 становится равным 1, а nm_mysp2 = А1.

Собственных знаний не хватает. Буд благодарен за элегантное решение.

  Ответить  
 
 автор: cheops   (15.03.2011 в 14:45)   письмо автору
 
   для: larush2   (15.03.2011 в 14:39)
 

Хм... может имеет смысл воспользоваться многострочным списком (тот же select, с атрибутом multiple='multiple' и количеством строк, скажем, size='4')? Зажимая клавишу Ctrl, вы сможете выбирать более одного значения.

  Ответить  
 
 автор: larush2   (15.03.2011 в 14:49)   письмо автору
 
   для: cheops   (15.03.2011 в 14:45)
 

Cheops... не в том дело. Список один и тот-же, но в 1 поле нужно поместить значение Value, в другой, то что предъявляется пользователю.

<option value=1>Рубль
<option value=2>Доллар
<option value=3>Евро

нужно получить при выборе пользователя и "2" и "Доллар" в разных полях за "один присест"

  Ответить  
 
 автор: cheops   (15.03.2011 в 14:53)   письмо автору
 
   для: larush2   (15.03.2011 в 14:49)
 

Хм... может в <option> засунуть еще id, который будет зависеть от value и вытаскивать потом значение между <option> и </option> при помощи innerHTML?

  Ответить  
 
 автор: larush2   (15.03.2011 в 14:59)   письмо автору
 
   для: cheops   (15.03.2011 в 14:53)
 

Ну я не настолько опытен... Можно пример ? ... на примере денег :-)
Думаю что можно сделать 2 функции, 1 для одного поля, 2- для другого, вызывать их с Select , вторую вызывать с OnBlur или еще чего..., передавать ей Value а в функции анализировыать массив... Вобщем что-то у меня такое замороченное выходит.

  Ответить  
 
 автор: cheops   (15.03.2011 в 15:42)   письмо автору
 
   для: larush2   (15.03.2011 в 14:59)
 

Имеется в виду вот что
<script language="Javascript" type= "text/javascript">  
function selSps(q){ 
if (document.getElementById) 
  { 
  var sel1 = document.getElementById('nm_mysp1'); 
  sel1.value = q.value; 
  var sel2 = document.getElementById('nm_mysp2'); 
  sel2.value = document.getElementById('id' + sel1.value).innerHTML; 
  } 

</script> 

<td><input type='text' name='arr[_mysps]' value='' size = '6' id='nm_mysp1' > 
<td><input type='text' name='arr[_mysps]' value='' size = '6' id='nm_mysp2' > 
<td><select name='spr_sps' onchange='selSps(this)'> 
        <option id='id1' value='1'>A1</option> 
        <option id='id2' value='2'>A2</option> 
        <option id='id3' value='3'>A3</option> 
 </select>

  Ответить  
 
 автор: SHAman   (15.03.2011 в 14:47)   письмо автору
 
   для: larush2   (15.03.2011 в 14:39)
 

  var sel1 = document.getElementById('nm_mysp1');
  sel1.value = q.value; 
  var sel2 = document.getElementById('nm_mysp2');
  sel2.value = q.value; 


Если я правильно понял.

  Ответить  
 
 автор: larush2   (15.03.2011 в 14:50)   письмо автору
 
   для: SHAman   (15.03.2011 в 14:47)
 

Да правильно, но исходный массив- Select у меня один... См. выше пример про деньги :-)

  Ответить  
 
 автор: The Electronic Cat   (15.03.2011 в 15:45)   письмо автору
 
   для: larush2   (15.03.2011 в 14:39)
 


<script language="Javascript" type= "text/javascript">  
function selSps(q){ 
if (document.getElementById) 
  { 
        var opt = q.options[q.selectedIndex];
        document.getElementById('nm_mysp1').value=opt.value; 
        document.getElementById('nm_mysp2').value=opt.text; 
  } 

</script> 

<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp1 > 
<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp2 > 
<td><select name='spr_sps' onchange=selSps(this)> 
        <option value=1>A1</option> 
        <option value=2>A2</option> 
        <option value=3>A3</option> 
 </select> 


upd: Была опечатка, поправил

  Ответить  
 
 автор: larush2   (15.03.2011 в 16:00)   письмо автору
 
   для: The Electronic Cat   (15.03.2011 в 15:45)
 

значение из opt.text пишет UDEFINED, я так и сам пробовал :-)

  Ответить  
 
 автор: The Electronic Cat   (15.03.2011 в 20:15)   письмо автору
 
   для: larush2   (15.03.2011 в 16:00)
 

Какой браузер? Только что проверил в Firefox 3.5, Google Chrome 10.0, IE 8

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования