Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.01.2015, 13:55
Новичок на форуме
Отправить личное сообщение для Ramzay Посмотреть профиль Найти все сообщения от Ramzay
 
Регистрация: 24.06.2008
Сообщений: 2

Помогите передать данные из PHP в яваскрипт
Здравствуйте;
Модуль php генерирует одномерный массив, элементами которого являются одинаковые одномерные массивы переменной длины:
Array
(
    [0] => Array
        (
            [0] => 2
            [id] => 2
            [1] => 1
            [Type] => 1
            [2] => Desk
            [Name] => Desk
            [3] => 
            [Sound] => 
            . . . 
        )
    [1] => Array
        (
            [0] => 5
            [id] => 5
            [1] => 1
            [Type] => 1
            [2] => Table
            [Name] => Table
            [3] => 
            [Sound] => 
            . . . 
        )
    . . . 
    [N] => Array
        (
            [0] => 5
            [id] => 5
            [1] => 1
            [Type] => 1
            [2] => Table
            [Name] => Table
            [3] => 
            [Sound] => 
            . . . 
        )

)

Передается этот массив в ява скрипт так:
print json_encode($curtable);?>

В принципе, массив передается и превращается в ява скрипт объект:
$.ajax
(
 {
  type: "POST",
  data: "key="+table,
  url: "\ajax.php",
  dataType: "json",
  success: function(data)
    {

     alert('data[0][0]='+data[0][0]);       //data[0][0]=2, data[1][2]=Table
     alert('data[0].lenght='+data[0].lenght); // Строка не выполняется
    }  
 }
);

Проблема в том, что массив (или объект) data[0] может быть переменной длинны. Соответственно нужно знать длину этого массива.

Как узнать длину массива?

В принципе, в PHP-ном массиве элементы вида Array[имя]=значение - не нужны. Эти элементы генерируются автоматически и являются избыточными. Может быть их нужно убрать в PHP и оставить элементы вида Array[номер]=значение, что бы в ява скрипте нормально определялась длинна массива?

Последний раз редактировалось Ramzay, 30.01.2015 в 13:59.
Ответить с цитированием
  #2 (permalink)  
Старый 30.01.2015, 14:22
Новичок на форуме
Отправить личное сообщение для Ramzay Посмотреть профиль Найти все сообщения от Ramzay
 
Регистрация: 24.06.2008
Сообщений: 2

Подчистил в PHP массив, как предполагал - длина массивов начала нормально определяться.
Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 1
            [2] => Desk
            [3] => 
        )

    [1] => Array
        (
            [0] => 5
            [1] => 1
            [2] => Table
            [3] => 
        )

    [2] => Array
        (
            [0] => 6
            [1] => 1
            [2] => Bar
            [3] => 
        )

)

Вывод - из объекта массив никак не получишь.

Не знаю даже кого благодарить. :-)
Ответить с цитированием
  #3 (permalink)  
Старый 31.01.2015, 18:55
Кандидат Javascript-наук
Отправить личное сообщение для Brutus Посмотреть профиль Найти все сообщения от Brutus
 
Регистрация: 24.11.2013
Сообщений: 127

Изучи конструкцию for..in http://javascript.ru/for..in

Вот я набросал http://learn.javascript.ru/play/f75nR
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XMLHttpRequest как с php передать массив на яваскрипт? wadim Общие вопросы Javascript 3 16.03.2014 14:05
Как передать значение переменной с ява на php wadim Общие вопросы Javascript 1 06.02.2014 00:19
Почему-то не открывается в мобильном яваскрипт с геолокацией от Гугла! Помогите! dfinchenko Javascript под браузер 0 11.10.2013 23:21
Помогите тупею! Как стать яваскрипт разработчиком? Policeman Оффтопик 57 15.12.2011 03:47
Как передать массив из PHP в js (AJAX) Александр Иванов Общие вопросы Javascript 7 10.09.2009 10:22