Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Два связанных multySelect-а, связанные списки 
:(
    Опции темы
AKS
Дата 7.11.2006, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



pythonwin
Цитата

мне нужна сортировка левого селекта по "text"

Наверняка будет достаточно подставить вашу функцию sort_opt (из первоначального варианта сценария) вместо функции sorter...
PM MAIL   Вверх
pythonwin
Дата 7.11.2006, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: нет
Всего: 36



Цитата(AKS @  7.11.2006,  17:03 Найти цитируемый пост)

Наверняка будет достаточно подставить вашу функцию sort_opt (из первоначального варианта сценария) вместо функции sorter... 

так и сделал smile

конечный код:

Код

<html>
<head>
<title>Multy Select</title>

<script type="text/javascript">
function replacer(select1, select2, bool) {
  var element;
  if(bool) {
    while(element = select1.firstChild)
        select2.appendChild(select1.removeChild(element));
  }
  else {
    for(var i = 0; element = select1.options[i]; i++) {
      if(element.selected) {
        select2.appendChild(element);
        element.selected = bool;
      }
    }
  }  
}

function mover(o, bool) {
  var e = o.options, i = o.selectedIndex, n = (bool) ? i - 1 : i + 1; 
  (i > -1 && n >= 0 && n < o.length) ? (o.insertBefore(o.removeChild(e[i]), 
    e[n]), o.selectedIndex = n) : '';  
}

sort_opt=function (x,y){
    if (x.text==y.text) return 0
    else if (x.text<y.text) return -1
    else if (x.text>y.text) return 1;
    }


function sorter(x, y) {
  x = (+x.value), y = (+y.value);
  return ((x > y) ? 1 : (x < y) ? -1 : 0);
}
function orderer(o) {
  var a = [];
  for(var i = 0, l = o.length; i < l; i++)
    a[a.length] = o.options[i];
  a.sort(sort_opt);
  for(i = 0; i < l; i++) o.appendChild(a[i]);
}

</script>

</head>

<body>
<div>
 <form mathod="POST" action="http://localhost:8066/index3" name="TForm1_select" onsubmit="javasript:alert('form post')">

<table border="0"><tr><td>


<select name="select_left" multiple="multiple" size="10" id="select_left_id" ondblclick="javascript:replacer(document.getElementById('select_left_id'), document.getElementById('select_right_id'), false);">
<option value="1">№ 1</option>
<option value="2">№ 2</option>
<option value="3">№ 3</option>
<option value="4">№ 4</option>
<option value="5">№ 5</option>
<option value="6">№ 6</option>
<option value="7">№ 7</option>
<option value="8">№ 8</option>
<option value="9">№ 9</option>
<option value="10">№ 10</option>
</select>
</td>
<td>
<button name="button_to_right" id="id_button_to_right" onclick="replacer(document.getElementById('select_left_id'), document.getElementById('select_right_id'), false); return false;" style="display:block; margin-bottom:15px"> > </button>
<button name="button_all_to_right" id="id_button_all_to_right" onclick="replacer(document.getElementById('select_left_id'), document.getElementById('select_right_id'), true); return false;" style="display:block; margin-bottom:15px"> All>> </button>

<button name="button_all_to_left" id="id_button_all_to_left"  onclick="replacer(document.getElementById('select_right_id'), document.getElementById('select_left_id'), true); return false;" style="display:block; margin-bottom:15px"> << All  </button>
<button name="button_to_left" id="id_button_to_left" onclick="replacer (document.getElementById('select_right_id'), document.getElementById('select_left_id'), false); return false;" style="display:block; margin-bottom:15px"> < </button>

</td>
<td>
<select name="select_right" multiple="multiple" size="10" id="select_right_id" ondblclick="replacer(document.getElementById('select_right_id'), document.getElementById('select_left_id'), false); orderer(document.getElementById('select_left_id'));">
</select>
</td>
<td>
<img src="arrow_up.gif" onclick="mover(document.getElementById('select_right_id'), true)" style="display:block; margin-bottom:15px"/>
<img src="arrow_down.gif" onclick="mover(document.getElementById('select_right_id'), false)" style="display:block; margin-bottom:15px"/>
</td>
</tr></table>

<input type="submit" value="send"/>

 </form> 
</div>
</body>
</html>

PM WWW GTalk Jabber   Вверх
pythonwin
Дата 8.11.2006, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: нет
Всего: 36



AKS, спасибо! smile
++1
PM WWW GTalk Jabber   Вверх
JonGol
Дата 10.11.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 10.11.2006

Репутация: 1
Всего: 1



А подскажите пожалуйста, как вывезти все даные что в правом столбце, а то на данный момент приходиться из в начале выделить а потом отправить smile 
PM MAIL   Вверх
pythonwin
Дата 13.11.2006, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: нет
Всего: 36



Цитата(JonGol @  11.11.2006,  02:59 Найти цитируемый пост)
А подскажите пожалуйста, как вывезти все даные что в правом столбце, а то на данный момент приходиться из в начале выделить а потом отправить

а ты записывай их как строку в скрытое поле перед отправкой или просто выдели их всех.
например как:
Код

for (i=0; i<select_left.options.length; i++){
select_left.options[i].selected=true;
}


Это сообщение отредактировал(а) pythonwin - 13.11.2006, 06:46
PM WWW GTalk Jabber   Вверх
SelenIT
Дата 24.6.2007, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 1
Всего: 401



Благодаря бдительности comtatа обнаружен баг - при выделении нескольких опций подряд переносятся только нечетные. В качестве фикса предлагаю "i--;" после 16-й строки. Возможно, кто-нибудь найдет выход покрасивее...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема »


 




[ Время генерации скрипта: 0.0948 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.