Как я могу отправить массив на php через ajax?

Я хочу отправить массив, построенный на javascript с выбранными значениями множественного выбора. Есть ли способ отправить этот массив в php-скрипт с помощью ajax?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
25
0
41 164
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

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

Возможно, вы захотите взглянуть на Создание данных JSON в PHP

Я нашел это лучшим ответом, потому что он не привязан к какой-либо структуре javascript, в частности.

Lucia 18.11.2008 22:00

даже не обязательно быть XML или JSON, вы можете опубликовать строку CSV или что-то еще

annakata 08.01.2009 15:22

Библиотека JSON-PHP, на которую указывает fuzzymonk, устарела, и более быстрая реализация уже есть в PHP. См. Руководство для функций json_encode и json_decode.

Michał Niedźwiedzki 08.01.2009 15:37

Возможно, вы ищете способ Сериализовать (версия jQuery) данных.

Чтобы добавить некоторую информацию, я мог найти версию этого совета для прототипа на prototypejs.org/api/object

Lucia 18.11.2008 21:58

IIRC, если PHP видит строку запроса, которая выглядит как http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz, он автоматически создает массив с именем $var, содержащий foo, bar и baz. Я думаю, вы даже можете указать индекс массива в квадратных скобках строки запроса, и он будет вставлять значение в этот индекс. Вам может потребоваться URL-кодирование скобок ... Обычно эта функция используется при создании поля ввода HTML с именем "var []", поэтому просто делайте то, что браузер обычно там делает. В документации по PHP есть раздел о переменных массива через запрос.

Вы можете создать массив и отправить его, как рекомендовал Meador: (следующий код - Mootooled, но похож на другие библиотеки / простой старый JS)

myArray.each(function(item, index)  myObject.set('arrayItems['+index+']', item);
myAjax.send(myObject.toQueryString());

Это отправит на php массив с именем arrayItems, доступ к которому можно получить через $ _POST ['arrayItems']

echo $_POST['arrayItems'] ; 

отобразит что-то вроде: array => {[0] => 'first thing', [1] => second thing}

Вы можете сделать это с помощью метода $ .post jQuery (например):

var myJavascriptArray = new Array('jj', 'kk', 'oo');

$.post('urltocallinajax', {'myphpvariable[]': myJavascriptArray }, function(data){
   // do something with received data!
});

Php получит массив с именем myphpvariable и будет содержать значения myJavascriptArray.

Это оно ?

+1. Спасибо большое! Некоторое время я пытался понять, как это сделать.

Nathan 10.12.2012 06:40

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

вот синатакс:

jQuery.ajaxSetting.traditional = true;

вот пример

$.ajax({    
 traditional: true,
 type: "post",
 url: myURL,
 dataType: "text", 
 data: dataToSend, //this will be an array eg. 
 success: function(request) {
  $('#results').html(request);
 }  // End success
 }); // End ajax method

Другие вопросы по теме