Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.06.2015, 06:53
Интересующийся
Отправить личное сообщение для Verbal Посмотреть профиль Найти все сообщения от Verbal
 
Регистрация: 01.08.2013
Сообщений: 25

Сделать из строки массик
Добрый день у меня есть массив в php, следующего вида вида
Array
(
    [event-training] => training
    [time] => Array
        (
            [0] => 11
            [1] => 16
        )

)

Я декодером из него получаю строку в js(всё передаётся успешно, интересует именно как сделать массив в jquery):
{"event-training":"training","time":["11","16"]}


Мне нужен массив из этого, я пробовал так:
success: function(results){
              var arr = jQuery.map(results, function(el) { return el; });
          }


но такой способ выдал следующую ошибку:

Uncaught TypeError: Cannot use 'in' operator to search for '47' in {"event-training":"training","time":["11","16"]}


Другие способы тоже не помогли.

Как эту строку распарсить так.
Что бы массив в js получился такой же. и например я мог вызвать
arr.event-training или arr['event-training'] (как будет правильнее сделать).

Последний раз редактировалось Verbal, 10.06.2015 в 07:25.
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2015, 08:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Verbal
Я декодером из него получаю строку в js(всё передаётся успешно, интересует именно как сделать массив в jquery):
{"event-training":"training","time":["11","16"]}
Не совсем понятно, что тебе нужно... Ты из объекта собираешься сделать массив? Или не знаешь как взять массив ["11","16"]?
Ответить с цитированием
  #3 (permalink)  
Старый 10.06.2015, 08:25
Интересующийся
Отправить личное сообщение для Verbal Посмотреть профиль Найти все сообщения от Verbal
 
Регистрация: 01.08.2013
Сообщений: 25

Я не знаю как сделать так что бы в js можно было сделать массив.

т.е. что бы можно было вызвать arr['event-training'] и например arr['time'][0]. сейчас это строка.
Ответить с цитированием
  #4 (permalink)  
Старый 10.06.2015, 08:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Verbal
Я не знаю как сделать так что бы в js можно было сделать массив.

т.е. что бы можно было вызвать arr['event-training'] и например arr['time'][0]. сейчас это строка.
Ну массива ты никакого не получишь, т.к. у тебя объект... А преобразовать можно так

var str='{"event-training":"training","time":["11","16"]}';
var obj=JSON.parse(str);
alert(obj['event-training']);
alert(obj['time'][0]);
Ответить с цитированием
  #5 (permalink)  
Старый 10.06.2015, 08:44
Интересующийся
Отправить личное сообщение для Verbal Посмотреть профиль Найти все сообщения от Verbal
 
Регистрация: 01.08.2013
Сообщений: 25

спасибо большое, помогло)
Ответить с цитированием
  #6 (permalink)  
Старый 10.06.2015, 09:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Verbal
всё передаётся успешно, интересует именно как сделать массив в jquery
Передавать клиенту не ассоциативный, а индексный массив, если на клиенте требуется массив, а не объект.
Ответить с цитированием
  #7 (permalink)  
Старый 10.06.2015, 14:12
Интересующийся
Отправить личное сообщение для Verbal Посмотреть профиль Найти все сообщения от Verbal
 
Регистрация: 01.08.2013
Сообщений: 25

я в принципе задачу решил, но тем не менее, мне заинтересовало ваше решения, я возвращаю данные с помощью использования json_encode, вроде как он в массив преобразует, как тогда преобразовать его в массив правильно в php?
Ответить с цитированием
  #8 (permalink)  
Старый 10.06.2015, 14:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Verbal, никак не пойму я вопрос твой...
Ответить с цитированием
  #9 (permalink)  
Старый 10.06.2015, 14:27
Интересующийся
Отправить личное сообщение для Verbal Посмотреть профиль Найти все сообщения от Verbal
 
Регистрация: 01.08.2013
Сообщений: 25

вот что пишет laimas
Сообщение от laimas Посмотреть сообщение
Передавать клиенту не ассоциативный, а индексный массив, если на клиенте требуется массив, а не объект.
Как передать индексный массив? Может самому его надо как-то сделать? Конкатенацией строк можно, но я пытался вроде и у меня даже не срабатывало создания массива js в php. Да и строк так получалось больше и менее читабельно было.
Ответить с цитированием
  #10 (permalink)  
Старый 10.06.2015, 14:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Verbal
Как передать индексный массив?
var a=[
   "Вася",
   "Петя",
   "Лена"
];
var str=JSON.stringify(a);
alert(str);


Сообщение от Verbal
Может самому его надо как-то сделать?
Можно и самому...
Главное соблюдать формат json.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает на добавленные строки Гробовщик jQuery 2 20.02.2015 13:18
Выделение строки в таблице posta ExtJS 5 23.06.2011 12:31
Как лучше сделать виджет? comentator Элементы интерфейса 0 25.03.2011 08:44
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Сделать прогу "Опросник" smiroleg Элементы интерфейса 6 09.07.2009 14:15