Всем привет.
Мне нужно сделать выпадающий список. При этом выбранный элемент должен появляться в строке рядом со списком, элементов в строке может быть несколько. Если нажать на элемент который появился в строке, то он должен пропадать из строки.
Выбранные элементы, те которые находятся в строке, должны передаваться на следующую страничку.
Помогите плиз.
1. AcAlex - 07 Ноября, 2008 - 11:29:35 - перейти к сообщению
2. Furax - 07 Ноября, 2008 - 23:20:45 - перейти к сообщению
AcAlex
Что значит "передаваться на следующую страницу"? Не вполне понятно. Почему просто не использовать список с возможностью выбора нескольких вариантов, или галочки?
Что значит "передаваться на следующую страницу"? Не вполне понятно. Почему просто не использовать список с возможностью выбора нескольких вариантов, или галочки?
3. AcAlex - 08 Ноября, 2008 - 04:25:58 - перейти к сообщению
Furax, передаваться на следующую страницу - значит передавать введенные значения методом POST, чтобы я их мог обработать на следующей страничке.
Конечно так было бы легче, но надо сделать так как я описал выше.
Цитата:
Почему просто не использовать список с возможностью выбора нескольких вариантов?
Конечно так было бы легче, но надо сделать так как я описал выше.
4. Furax - 08 Ноября, 2008 - 06:03:16 - перейти к сообщению
AcAlex
Хм... Ну, к примеру, это можно реализовать так:
Хм... Ну, к примеру, это можно реализовать так:
CODE:
<script type="text/javascript">
var names = [];
function processSelect(Select)
{
if (Select.selectedIndex == 0)
return;
var name = Select.options[Select.selectedIndex].text, removed=false;
for (var i=0; i<names.length; ++i)
if (names[i] == name)
{
names.splice(i, 1);
removed=true;
break;
}
if (!removed)
names.push(name);
Select.selectedIndex = 0;
var span = document.getElementById('names');
while (span.firstChild)
span.removeChild(span.firstChild);
span.appendChild(document.createTextNode(Select.form.names.value = names.join(', ')));
}
</script>
<form method="POST" action="...">
<select onchange="processSelect(this);" name="selectselectselect">
<option checked value="0">Выберите имя
<option value="1">Каллистрат
<option value="2">Эвредика
<option value="3">Полиграф</select><br>
Выбранные имена: <span id="names"> </span>
<input type="hidden" name="names" value=""></form>
var names = [];
function processSelect(Select)
{
if (Select.selectedIndex == 0)
return;
var name = Select.options[Select.selectedIndex].text, removed=false;
for (var i=0; i<names.length; ++i)
if (names[i] == name)
{
names.splice(i, 1);
removed=true;
break;
}
if (!removed)
names.push(name);
Select.selectedIndex = 0;
var span = document.getElementById('names');
while (span.firstChild)
span.removeChild(span.firstChild);
span.appendChild(document.createTextNode(Select.form.names.value = names.join(', ')));
}
</script>
<form method="POST" action="...">
<select onchange="processSelect(this);" name="selectselectselect">
<option checked value="0">Выберите имя
<option value="1">Каллистрат
<option value="2">Эвредика
<option value="3">Полиграф</select><br>
Выбранные имена: <span id="names"> </span>
<input type="hidden" name="names" value=""></form>
5. AcAlex - 08 Ноября, 2008 - 06:42:16 - перейти к сообщению
Furax, спасибо тебе за помощь. Я сделал по-другому. Если интересно - могу выложить.
6. Furax - 08 Ноября, 2008 - 06:52:53 - перейти к сообщению
Выложи.
7. AcAlex - 08 Ноября, 2008 - 10:49:43 - перейти к сообщению
Вот держи.
8. Furax - 08 Ноября, 2008 - 10:59:00 - перейти к сообщению
Через innerHTML? Тоже вариант, хотя мой мне нравится больше...