
02.05.2017, 13:27
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
denis82,
<script>
var models = {};
models[79] = [];
models[79][0]= {'19709' : 'Creta'};
models[79][1]= {'19701' : 'Coupe'};
models[79][2]= {'19725': 'ix35'};
models[79].sort(function() {
// тут можно сортировать как вам нужно, если будет как структура выше
});
alert(models[79]);
</script>
|
|

02.05.2017, 13:36
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
denis82,
<script>
var models = {};
models[79] = [];
models[79][0]= {'19709' : 'Creta'};
models[79][1]= {'19701' : 'Coupe'};
models[79][2]= {'19725': 'ix35'};
models[79].sort(function(a,b) {
for(var k in a) a = k;
for(var k in b) b = k;
return a - b});
document.write(JSON.stringify(models[79]));
</script>
|
|

02.05.2017, 18:35
|
Новичок на форуме
|
|
Регистрация: 30.04.2017
Сообщений: 8
|
|
Да, спасибо, Рони, наверное так и нужно делать. Но как тогда потом на выходе получить такой формат:
models[79][19701] = 'Coupe';
models[79][19709] = 'Creta';
models[79][19725] = 'ix35';
|
|

02.05.2017, 19:32
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
Сообщение от denis82
|
Но как тогда потом на выходе получить такой формат
|
никак
|
|

02.05.2017, 19:39
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
denis82,
либо вы измените структуру данных и потом сортируите как угодно, либо забудьте о сортировке.
|
|

03.05.2017, 09:22
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от denis82
|
наверное так и нужно делать
|
Данные откуда, кто их формирует в такую структуру? Если это данные из базы, то почему сразу запросом не отсортировать их?
Сообщение от denis82
|
на выходе получить такой формат
|
Для чего? Собственно так models[79][19701] и можно получить данные из объекта, а каков синтаксис его описания вам какая разница?
|
|

03.05.2017, 17:19
|
Новичок на форуме
|
|
Регистрация: 30.04.2017
Сообщений: 8
|
|
Данные сортируются на стороне клиента в браузере - зависимые списки: марка, модель, поколение, серия, модификация автомобилей. Марки сортирую из БД запросом, но остальные списки сортировать нужно на js. То есть выбрал марку, в зависимости от нее построился список моделей отсортированный по алфавиту с сохранением ключей, чтобы дальше при отправке на сервер передались нужные ключи. Есть скрипт, который управляет списками, подгружая нужный список в зависимости от выбранного, поэтому и желательно подстроить под него синтаксис. Как-то не думал что такие сложности с сортировкой возникнут. В js я совсем слаб, уж простите.
|
|

03.05.2017, 17:29
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от denis82
|
То есть выбрал марку, в зависимости от нее построился список моделей отсортированный по алфавиту с сохранением ключей, чтобы дальше при отправке на сервер передались нужные ключи.
|
То есть если поля формы или иные данные отдаваемые клиентом серверу не будут сортированы, то сервер получит "ненужные ключи"? Что за глупость
Сообщение от denis82
|
Марки сортирую из БД запросом, но остальные списки сортировать нужно на js.
|
С чего вдруг если речь о зависимых списках? Даже если списки не получаются асинхронным запросом, а строятся уже по отданным клиенту данным, это же не мешает их заведомо отсортировать.
|
|

03.05.2017, 19:31
|
Новичок на форуме
|
|
Регистрация: 30.04.2017
Сообщений: 8
|
|
Имею в виду что если сделать сортировку, как я писал в первом посте, то ключи присвоятся по порядку: 0, 1, 2, 3 и т.д.
Я пробовал сортировать заранее при выводе данных из базы, сортируется корректно, но после этого
models[<?php echo $id_brand; ?>][<?php echo $k; ?>] = '<?php echo $v; ?>';
в поле select сортировка как будто игнорируется. Вот почему и стал думать как корректно сортировать массив на js. Не могу понять почему сортировка слетает.
foreach ($array2 as $k=>$v) {
$title_model = $v;
$id_model = $k;
?>
models[<?php echo $id_brand; ?>][<?php echo $id_model; ?>] = '<?php echo $title_model; ?>';
<?php
}
|
|

03.05.2017, 19:38
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
denis82,
ещё раз: на выходе у вас разреженный массив -- при сортировке -- все значения сдвигаются к началу массива - ключи в данном случае не ключи, а индексы массива -- нужны ключи => делайте обьект -- но обьект невозможно отсортировать, но можно как угодно извлечь данные.
|
|
|
|