Как передать массив в get запросе
Перейти к содержимому

Как передать массив в get запросе

  • автор:

Как передать массив в get запросе

(0) Если нужно передавать массив, то нужно делать POST запрос. И в теле запроса уже передавать что хочешь.

Если в документации написано, что используется GET-запрос, то все равно можно сделать POST запрос?
(0) приведи строку запроса.
Иногда сервер понимает так: ?filter[ids]=1&filter[ids]=2

(4) Ну. Тогда в документации должно быть указано за то «как в запросе GET указать параметр запроса типа массив?»

не указано это в документации. Написано только тип параметра массив
(3) Можно и через GET, если массив не большой и вместится в 4кб
(4) Вряд ли
(10) что смысл?
(11) в запросе GET указать параметр запроса типа массив
(12) в документации указано, что запрос GET и параметр массив
можеть быть как
&filter=[1, 2, 3]
(13) ты к 1с подключаешься?
нет, не к 1с. Надо с сайта получить данные
(16) АдресСтраницы = «твой сайт/hs/твой хттп сервис /твой массив
(16) массивы я помню в пхп легко передаются в параметрах, только их нужно правильно создать
(13) приведи фрагмент документации или ссылку на всю
(16) Ты главное не говори что за сайт и какой запрос ты хочешь отправить

Фильтр = Новый Массив;
Фильтр.Добавить(1);
Фильтр.Добавить(3);

ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить(«filter», Фильтр);

Как передать массив в get запросе

В прошлых темах была рассмотрена отправка на сервер отдельных значений. Однако отправка набора значений, то есть массивов в PHP может вызвать некоторые сложности. Рассмотрим, как можно отправить на сервер и соответственно получить на сервере массивы данных.

Например, определим следующий файл users.php :

 echo "В массиве " . count($users) . " элементa/ов
"; foreach($users as $user) echo "$user
"; ?>

В данном случае мы предполагаем, что параметр «users», который передается в запросе типа GET, будет представлять массив. И соответствено мы сможем получить из него данные.

Чтобы передать массив этому скрипту, обратимся к нему со следующим запросом:

http://localhost/users.php?users[]=Tom&users[]=Bob&users[]=Sam

Чтобы определить параметр строки запроса как массив, после названия параметра указываются квадраные скобки []. Затем мы можем присвоить некоторое значение: users[]=Tom . И сколько раз подобным образом будет присвоено значений, столько значений и будет в массиве. Все значения, как и обычно, отделяются амперсандом. Так, в данном случае в массив передаются три значения.

Передача массивов в PHP на сервер в запросе GET

Подобным образом мы можем отправлять данные в запросе POST из формы. Например, определим следующий скрипт:

   METANIT.COM  "; foreach($users as $user) echo "$user
"; > ?>

Форма ввода данных

User 1:

User 2:

User 3:

Как известно, название ключа передаваемых на сервер данных соответствует значению атрибута name у элемента формы. И чтобы указать, что какое-то поле ввода будет поставлять значение для массива, у атрибут name поля ввода в качестве значения принимает название массива с квадратными скобками:

Соответственно, сколько полей ввода с одним и тем же именем массива мы укажем, столько значений мы сможем передать на сервер. Так, в данном случае на сервер передается три значения в массиве users:

Отправка массивов на сервер методом POST из формы в PHP

Причем данный принцип применяется и к другим типам полей ввода формы html.

При этом в примерах выше передавался обычный массив, каждый элемент которого в качестве ключа имеет числовой индекс. Соотвенно, используя индекс, мы можем получить определенный элемент массива:

$firstUser = $_POST["users"][0]; echo $firstUser;

Но также мы можем в элементах формы явным образом указать ключи:

   METANIT.COM  $secondUser
$thirdUser"; > ?>

Форма ввода данных

User 1:

User 2:

User 3:

Например, первое поле добавляет в массив элемент с ключом «first»

Поэтому на сервере мы можем с помощью данного ключа получить соответствующий элемент:

$firstUser = $_POST["users"]["first"];

Как передать массив в url?

Нужно чтобы в $stateParams[element], элементом был массив/объект.
Для себя пока придумал только /request?params=
И поработать со строкой, есть ли вариант какой то не строковый?

  • Вопрос задан более трёх лет назад
  • 6476 просмотров

Комментировать
Решения вопроса 1

NaN

есть ли вариант какой то не строковый?

GET это строка. Причем еще и с ограничением по длине. Разным.
stackoverflow.com/questions/417142/what-is-the-max.

У вас правильный вариант.

как передать массив через $_GET ?

как передать массив через $_GET ? можно ли ? если да почему этот вариант не работает ?

$info = array(«user» => $username, «email» => $email, «pass» => $pwd);

в add_device_form.php рапечатываю $errors_holder;

print_r($_GET['errors_holder'])
Ссылка на комментарий
Поделиться на других сайтах

Больше способов поделиться.

11 ответов на этот вопрос

  • Сортировать по голосам
  • Сортировать по дате

Рекомендованные сообщения

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *