Javascript.RU

 
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.06.2009, 07:58
Новичок на форуме
Отправить личное сообщение для разум Посмотреть профиль Найти все сообщения от разум
 
Регистрация: 07.06.2009
Сообщений: 2

Обработка значений select multiple
Господа, нужна помощь.
Есть форма, в ней <select name="f[]" multiple>
и большой список options.
Нужно сделать, чтобы при клике на любой вариант, в поле <input type="text"> вставлялось "http://mysite.com/sctipt.php?f[]=1&f[]=2&f[]=3"
где "f[]=" подставляется автоматически для каждого значения.
Как я понимаю, при каждом клике нужно вызывать цикл, который к переменной добавляет "f[]=" и значение того варианта, на который нажали.
Соответственно нужен так же обработчик и снятия выделения с варианта.
Заранее большое спасибо.
  #2 (permalink)  
Старый 07.06.2009, 11:51
egg egg вне форума
Интересующийся
Отправить личное сообщение для egg Посмотреть профиль Найти все сообщения от egg
 
Регистрация: 29.05.2009
Сообщений: 19

<input id='tfld' type="text" value=''> 
<select name='slct' onchange='tfld.value="http://mysite.com/sctipt.php?"+slct.value+"=1&"+slct.value+"=2&"+slct.value+"=3"'
>
  <option value=..>
  ...
</select>
  #3 (permalink)  
Старый 07.06.2009, 11:58
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

За тебя писать никто не будет. Начинай сам и задавай более конкретные вопросы.
  #4 (permalink)  
Старый 07.06.2009, 12:00
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

egg, slct.value возвращает значение первого выделенного option-а, даже если их выделено несколько.
  #5 (permalink)  
Старый 07.06.2009, 12:20
Новичок на форуме
Отправить личное сообщение для разум Посмотреть профиль Найти все сообщения от разум
 
Регистрация: 07.06.2009
Сообщений: 2

Да я понимаю, что писать не будут. Просто как реализовать подобное на пхп я знаю, а вот с синтаксисом javascript пока не знаком.
Прошлый предложенный скрипт не подходит тем, что он работает при простом нажатии мышкой, а нужно чтобы работало при Ctrl+click
Если немного доделать скрипт, который предоставили выше, то получается почти то что надо:
<input id='tfld' type="text" value='http://mysite.com/sctipt.php?'> 
<select name="slct" multiple onchange='tfld.value=tfld.value+"&f[]="+slct.value'>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>

После щелчков мыши получается http://mysite.com/script.php?&f[]=1&f[]=2&f[]=3
Т.е. нужно как-то сделать, чтобы работало при щелчке с зажатым Ctrl и проверку, если выделение с option снимается. Тут видимо надо делать циклом, проверять, если значение выделено, то добавлять его к tfld.value
Вот с этим немного непонятно, как именно делать проверку на "чекнутость"?
  #6 (permalink)  
Старый 07.06.2009, 16:20
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Покопайся в этом коде:

var Option = {
	getValue: function(self) {
		if (self) return (self.attributes.value || {}).specified ? self.value : self.text;
	}
};

var Select = {
	getValue: function(self) {
		if (self) {
			if (self.type == 'select-one')
				return self.selectedIndex > -1 ? Option.getValue(self.options[self.selectedIndex]) : '';
			for (var result = [], getValue = Option.getValue, options = self.options, i = 0, j = 0, length = options.length; i < length; i++)
				if (options[i].selected) result[j++] = getValue(options[i]);
			return result;
		}
	}
};
  #7 (permalink)  
Старый 07.06.2009, 21:45
egg egg вне форума
Интересующийся
Отправить личное сообщение для egg Посмотреть профиль Найти все сообщения от egg
 
Регистрация: 29.05.2009
Сообщений: 19

извините, неправильно понял задачу; Riim почти все расписал, осталось только выбрать событие, на который можно повесить обработчик собирающий результирующую строку из значений массива Select.getValue(slct)
  #8 (permalink)  
Старый 08.06.2009, 14:09
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а что, без javascript уже не модно? http://www.php.net/manual/en/languag...s.external.php
 



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение численных значений формы ввода FastSP Общие вопросы Javascript 8 08.04.2012 20:45
заполнить select значениями другого select Central Элементы интерфейса 1 30.05.2009 14:41
Обработка Select Oleg_Antonov Элементы интерфейса 17 16.05.2009 03:23
Select parent/child и JSON ajaxcall Dominate jQuery 1 30.04.2009 19:24
событие на выпадение-скрытие списка select Aderba jQuery 1 03.04.2009 21:51