За последние 24 часа нас посетили 22839 программистов и 1262 робота. Сейчас ищут 833 программиста ...

Передача многомерного массива от сервера клиенту

Тема в разделе "PHP для новичков", создана пользователем Felis, 2 июл 2021.

  1. Felis

    Felis Новичок

    С нами с:
    9 мар 2021
    Сообщения:
    9
    Симпатии:
    0
    Вопрос: как передать многомерный массив с сервера клиенту.
    пробовал через ajax, но из json строки извлекать многомерный массив не удобно.
    Пример: есть таблица 10 столбцов (пусть будут данные пользователя), 100 строк.
    Делаем поиск всех пользователей проживающих по конкретному адресу.
    От клиента передаю серверу данные для выборки.
    На стороне сервера делаю выборку. (получаю к примеру 20 строк по 10 столбцов).
    И... возникает у меня проблема как передать и главное обработать полученную выборку ((
    То есть на стороне клиента мне нужно заполнить табличку с полученной выборкой, но я никак не пойму как это сделать.

    З.Ы. когда выборка из 2-3 столбцов решение нашел, а вот когда выборка из 10+ столбцов, то у меня вызывает затруднение, видимо чегот не знаю или не понимаю(
    З.Ы.Ы. возможно ли как-то запаковать многомерный массив в json, чтоб потом при его возврате без геморроя его трансформировать обратно в массив?
     
  2. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    Вы бы хоть пример привели...

    Обычный запрос к бд... Мануалов больше чем надо даже на этом форуме. А про гугл вообще молчу
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    похоже даже и не пробовали?

    json_encode(ваш многомерный массив)

    чем принципиально отличается массив с 2-3 столбцами от 10-20-30?... да ничем!
     
    don.bidon нравится это.
  4. Felis

    Felis Новичок

    С нами с:
    9 мар 2021
    Сообщения:
    9
    Симпатии:
    0
    Привожу пример:
    Делал так:
    $Data = array ($arr_a, $arr_b, $arr_c, $arr_d);
    echo json_encode ($Data);
    На стороне клиента не мог понять как обратиться к элементу конкретного массива.

    Теперь сделал так:
    $Data_New = [
    'arr_a' => $arr_a,
    'arr_b' => $arr_b,
    'arr_c' => $arr_c,
    'arr_d' => $arr_d,
    ];
    echo json_encode ($Data_New);
    И теперь смог обратиться к конкретному элементу конкретного массива (json_data.arr_b).
    Тобишь трудность была в отсутствии базовых знаний о массивах (всеж незря тема создана в разделе для новичков).

    З.Ы. насчет мануалов...2 дня безрезультатно перерывал инет, если кто даст ссылку на то, что я тут написал или альтернативный способ, буду благодарен.
     
  5. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    Книги? Не, не слышал!
     
    don.bidon нравится это.
  6. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1. return json_encode( $result, JSON_UNESCAPED_UNICODE);
    Код (Javascript):
    1. data = JSON.parse(data)
     
  7. Felis

    Felis Новичок

    С нами с:
    9 мар 2021
    Сообщения:
    9
    Симпатии:
    0
    умный да? соглашусь что умный, когда дашь ссылку на книгу/страницу с описанием данной проблемы. (видимо я не смог сформулировать правильно свою проблему во время поиска, но все равно былоб интересно увидеть конкретную книгу с конкретным примером)
    --- Добавлено ---
    parse также не удобен если массив собран как у меня в начале был, всеж второй способ собирания массива упрощает жизнь.
     
  8. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @Felis, тут важно понимать:
    - массивы, как таковые (php, на стороне сервера): PHP: Массивы - Manual
    - объекты (и массив, как частный случай объекта) в JS (на стороне клиента): Объекты (javascript.ru)
    Если перед выполнением возвратом данных в формате JSON передать соответствующий заголовок, то клиенту не придётся выполнять JSON.parse(). Например:
    PHP:
    1. header("Content-Type: application/json; charset=UTF-8");
    2. echo json_encode($Data_New);
     
    Felis нравится это.