Как отправить обычный массив на сервер AJAX JQUERY?

у меня есть массив на javascript
$array = new Array();

и где то он формируется, размер массива не известен после преобразований:
$array.push(e.target.id);

Как отправить такой массив на сервер?
jQuery.ajax({
                    url:     'upload.php', //Адрес подгружаемой страницы
                    type:     "POST", //Тип запроса
                    data:  {КАК СЮДА ВСТАВИТЬ МАССИВ},
					cache: false,					
                    success: function(response) { //Если все нормально
                    document.getElementById('output').innerHTML = 'Good';
					},
					error: function(response) { //Если ошибка
						document.getElementById('output').innerHTML = "Ошибка при отправке формы";
					}
				});


Пример, если бы был
array[0] = 'max'
arrat[1] = 'max1'

то data: {
'0' = 'max',
'1' = 'max1'
}

Но опять же, размерность массива не известна, как сформировать data?
  • Вопрос задан
  • 17199 просмотров
Решения вопроса 1
NekitoSP
@NekitoSP
data в данном случае - объект. Поэтому чтобы передать массив - вам нужно сначала преобразовать его в объект.
function toObject(arr) {
  var res = {};
  for (var i = 0; i < arr.length; ++i)
    if (arr[i] !== undefined) res[i] = arr[i];
  return res;
}
...
$array.push(e.target.id);
...
$obj = toObject($array);
...
jQuery.ajax({
                    url:     'upload.php', 
                    type:     "POST",
                    data:  $obj,
...


или же средствами jQuery:
$obj = $.extend({}, $array);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
nor1m
@nor1m
web-developer
Проще отправлять JSON
Ответ написан
Комментировать
HDApache
@HDApache
PHP программист
видимо перебрать массив и пересобрать его в ассоциативный массив (объет) сделать из него JSON и отправить, а на сервере из json преоброзовать в массив.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы