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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать ключи массива? 
:(
    Опции темы
maxipub
  Дата 27.11.2013, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день!

Перебираю элементы формы для их обработки в цикле:

Код

current = MyForm.elements[n];


В форме идут поля с массивами вида:

Код

array[first][second]


Как можно узнать текущие ключи массива (first и second) для каждого current?  smile  smile  smile 
PM MAIL   Вверх
Sanchezzz
Дата 28.11.2013, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

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



Код

var a = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5];
alert(a.indexOf(3));      // 2
alert(a.lastIndexOf(3));  // 7


не ? 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
maxipub
  Дата 28.11.2013, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Видел такой пример. Я что-то не так делаю? smile 

Код

<script type="text/javascript">
function clicked() {
    MyForm = document.getElementById('MyForm');
    for (n = 0; n < MyForm.length; ++n) {
        current = MyForm.elements[n];
        alert(current.IndexOf(current.value)); }
}
</script>

<input type="button" value="click me!" onclick="clicked()" />

<form id="MyForm">
<input type="text" name="array[first_1][second_1]" value="123" />
<input type="text" name="array[first_2][second_3]" value="456" />
<input type="text" name="array[first_2][second_3]" value="789" />
</form>

PM MAIL   Вверх
ksnk
Дата 28.11.2013, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Это не ключи массива. C точки зрения JavaScript, это просто такое забавное значение атрибута name. В ключи массива переводит PHP.

Код

function clicked () {
    var MyForm = document.getElementById('MyForm');
    for (var n = 0; n < MyForm.length; ++n) {
        var current = MyForm.elements[n],m,
             name=current.getAttribute('name');    
        if(m=name.match(/\[(.*?)\]\[(.*?)\]/)){
           console.log(m[1],m[2]);
        }
    }
}

Может так? 

Это сообщение отредактировал(а) ksnk - 28.11.2013, 15:47


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
maxipub
Дата 28.11.2013, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ksnk, уже понятней в каком направлении в принципе рыть (у меня код не совсем корректно работает). Спасибо.

К счастью, проблему удалось решить вчера другим способом, но для общего развития сойдет.
PM MAIL   Вверх
baldina
Дата 28.11.2013, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



в чем некорректность?

Добавлено @ 16:54
http://jsfiddle.net/QGW6a/

Это сообщение отредактировал(а) baldina - 28.11.2013, 16:57
PM MAIL   Вверх
maxipub
Дата 29.11.2013, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



baldina, ваш пример работает. То что выше выдает то что на скрине.

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  2.jpg 39,41 Kb
PM MAIL   Вверх
baldina
Дата 29.11.2013, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



в моем примере, в отличие от ваших данных, значения атрибута name не повторяются
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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