2010-01-14 3 views
4

Вот мой массив:

arr[0]='A'; 
arr[1]='B'; 
.... 

Я попытался отправить это так:

$.post('data.php',arr,function() { 

}); 

Но не работает, как ожидалось.

ответ

0

Вы не можете отправить массив. Что вам нужно, это хеш:

parameters = { "Param1" : "A", "Param2" : "B" }; 

Выберите подходящее имя и преобразовать массив в хэш:

hash = {}; 
$.each(arr, function(i, elem) { 
hash["Param" + i] = elem; 
}); 
+2

Вы можете оставить массив. Прочитайте [ответ ниже] (http://stackoverflow.com/questions/2063076/how-to-post-a-array-with-post/2063090#2063090) – Casebash

+1

Вы можете разместить массив, этот метод - именно то, что люди хочу избежать: p –

7

От manual:

данных (необязательно) Map, String

Пара ключей/значений или возвращаемое значение функции .serialize(), которая будет отправлена ​​на сервер.

А из примеров, приведенных в руководстве:

$.post("test.php", { 'choices[]': ["Jon", "Susan"] });

Поэтому:

$.post("test.php", { 'arr[]': arr }); 
+1

Стоит отметить, что JQuery 1.4 добавляет [] в [перед именем вашего массива автоматически] (http://benalman.com/news/2009/12/jquery-14-param-demystified/) , – Casebash

+0

@Casebash: Eugh. – Quentin

+0

Я знаю. И что еще хуже, он кодирует [] – Casebash

Смежные вопросы