Обработка значений select multiple
Господа, нужна помощь.
Есть форма, в ней <select name="f[]" multiple> и большой список options. Нужно сделать, чтобы при клике на любой вариант, в поле <input type="text"> вставлялось "http://mysite.com/sctipt.php?f[]=1&f[]=2&f[]=3" где "f[]=" подставляется автоматически для каждого значения. Как я понимаю, при каждом клике нужно вызывать цикл, который к переменной добавляет "f[]=" и значение того варианта, на который нажали. Соответственно нужен так же обработчик и снятия выделения с варианта. Заранее большое спасибо. |
<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> |
За тебя писать никто не будет. Начинай сам и задавай более конкретные вопросы.
|
egg, slct.value возвращает значение первого выделенного option-а, даже если их выделено несколько.
|
Да я понимаю, что писать не будут. Просто как реализовать подобное на пхп я знаю, а вот с синтаксисом 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 Вот с этим немного непонятно, как именно делать проверку на "чекнутость"? |
Покопайся в этом коде:
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; } } }; |
извините, неправильно понял задачу; Riim почти все расписал, осталось только выбрать событие, на который можно повесить обработчик собирающий результирующую строку из значений массива Select.getValue(slct)
|
а что, без javascript уже не модно? http://www.php.net/manual/en/languag...s.external.php
|
Часовой пояс GMT +3, время: 18:34. |