Страница 1 из 1

JS select сортировка

Добавлено: 2010-09-01 11:12:04
schizoid
Народ, есть некий php-код, в нем есть вкрапления JS (динамические списки), честно мной стыренные, ибо в JS я не шарю.
вот показываю кусок исходного кода:

Код: Выделить всё

<tr><td>Наименование устройства</td><td><!-- Подчиненный список 1 (изначально пуст) -->
<select size="1" id="descrId" name='descr1'></select>

<script type="text/javascript">
// Создаем новый объект связанных списков
var syncList1 = new syncList;

// Определяем значения подчиненных списков (2 и 3 селектов)
syncList1.dataList = {

/* Определяем элементы второго списка в зависимости 
от выбранного значения в первом списке */

	'33':{
},
	'26':{

		  '11':'Sharp AR 5316',
		  
		  '13':'Сanon  FC 208',
		  },
	'9':{
},
	'2':{
},
	'10':{

		  '9':'Brother DCP 7010',
		  
		  '5':'Canon LaserBase MF3110',
		  
		  '24':'Canon MF 4018',
		  
		  '35':'HP 2727nfs',
		  
		  '3':'HP 3052',
		  
		  '12':'HP 3052',
		  
		  '20':'HP LJ M4345MFP',
		  
		  '21':'Konica Minolta PagePro 1380MF',
		  
		  '25':'Samsung 4100',
		  
		  '27':'Samsung 4220',
		  
		  '37':'Samsung SCX-4216F',
		  
		  '22':'Sharp AR-M236',
		  
		  '14':'Xerox Phaser 3100 MFP',
		  },
	'5':{
},
	'31':{
},
	'12':{
},
	'14':{
},
	'20':{
},
	'7':{

		  '30':'Brother HL 2149R',
		  
		  '31':'Brother HL-20',
		  
		  '10':'Canon 2900',
		  
		  '17':'Canon 2900',
		  
		  '7':'Canon LBP 1120',
		  
		  '4':'Canon LBP 810',
		  
		  '23':'Canon MF4018',
		  
		  '32':'Canon MF4120',
		  
		  '38':'Epson FX-2190',
		  
		  '34':'HP 3392',
		  
		  '33':'HP LaserJet 1200',
		  
		  '26':'HP M1120',
		  
		  '36':'HP P2035',
		  
		  '2':'Samsung CLP-310',
		  
		  '8':'Samsung ML 1210',
		  
		  '28':'Samsung ML-2250',
		  
		  '18':'Samsung ML-2251',
		  
		  '29':'Samsung SCX-4100',
		  
		  '19':'Samsung SCX-4300 Black',
		  
		  '15':'Xerox Phaser 3116',
		  },
	'23':{

		  '39':'System Block',
		  },
	'21':{
},};

// Включаем синхронизацию связанных списков
syncList1.sync("typeId","descrId");
</script>
<p style='margin: 2px; margin-left: 0px;'>
<input name='descr2' type='text' style='width: 343px;'></p>
</td></tr>
суть вопроса:
прикол в том, что в браузере при открытии выпадающего списка этот список сортируется по первому полю, т.е. первым в списке будет '2':'Samsung CLP-310', затем '4':'Canon LBP 810', и т.д. Возможно ли сделать сортировку по второму полю, так сказать что б кучненько было, Кеноны, так все вместе, Самсунги так тоже в кучке...

Re: JS select сортировка

Добавлено: 2010-09-02 8:39:26
BlackCat
schizoid писал(а):прикол в том, что в браузере при открытии выпадающего списка этот список сортируется по первому полю, т.е. первым в списке будет '2':'Samsung CLP-310', затем '4':'Canon LBP 810', и т.д.
В коде библиотеки сортировки нет, остаются особенности работы браузера. Opera и FireFox показывают список в том порядке, в котором элементы были перечислены. В каком браузере вы проверяли?

Re: JS select сортировка

Добавлено: 2010-09-02 9:45:40
schizoid
в опере. в том то и дело, что перечислены они по-порядку (сортировка средствами sql)

Re: JS select сортировка

Добавлено: 2010-09-02 9:55:56
schizoid
плин. проверил в IE - там все в порядке.
вопрос снимается. снкс.

Re: JS select сортировка

Добавлено: 2010-09-02 10:13:27
BlackCat
schizoid писал(а):плин. проверил в IE - там все в порядке.
вопрос снимается. снкс.
У меня в IE вообще не заработало, но это наверно я что-то не так собрал.
=====
А что это такое интересное будет?

Re: JS select сортировка

Добавлено: 2010-09-02 12:35:30
schizoid
та ничего особенного...вот статья
http://www.tigir.com/javascript_select.htm

Re: JS select сортировка

Добавлено: 2010-09-02 12:46:07
BlackCat
schizoid писал(а):та ничего особенного...вот статья
http://www.tigir.com/javascript_select.htm
Статью уже видет. Нашёл вчера, когда искал используемую вами JS-библиотеку. Было интересно, что вы пишете. Подумал, что это какой-то веб-интерфейс для Active Directory или что-то в этом роде.

Re: JS select сортировка

Добавлено: 2010-09-02 15:23:03
schizoid
нет, все намного прозаичнее, это внутренний сайтег для приема принтеров и т.д. в ремонт :)

Re: JS select сортировка

Добавлено: 2010-09-03 0:03:57
ProFTP
еще на опере 9 и 10 по разному. нужно руками править под конкретно под этот браузер

тут нужно перебрать ключи хеша (объекта) syncList1.dataList = { , чтобы получить доступ к значению

Код: Выделить всё

for(var k in syncList1.dataList)
{
        // Здесь мы можем сделать что-нибудь с переменной syncList1.dataList[k]
        // В ней содержится значение хэша syncList1.dataList с ключем k
}

значнеие может быть как скаляр и как еще один хеш, возможно тут понадобится typeof для опрделения типа данных...

Код: Выделить всё

if (typeof(d) == "object") { 

в принципе реализуемо перебрать, но геморой на javascript (Jquery) бывает иногда :)


http://www.google.com.ua/search?hl=uk&c ... =&gs_rfai=

Re: JS select сортировка

Добавлено: 2010-09-06 10:52:01
schizoid
та не, то для меня сложно :)
народ не жалуется, значить оперу не юзають. пущай так и будет.