массив сообщений jQuery

17

Мне интересно, как отправить массив с помощью $ .ajax. Мой массив выглядит примерно так:

var a = new Array();
a['test'] = 1;
a['test2'] = 2;
and so on...

Я пробовал:

$.ajax({
  url: baseUrl+"chat.php",
  data: { vars: a},
  type: 'post',
  success: function(data) {
alert(data);
}});

Любые предложения?

    
задан Alec Smart 04.06.2009 в 15:41
источник

4 ответа

31

Попробуйте следующее:

var a = {};
a['test'] = 1;
a['test2'] = 2;

// or


var a = {};
a.test = 1;
a.test2 = 2;

// or


var a = {
    test : 1,
    test2 : 2
};

$.ajax({
  url: baseUrl+"chat.php",
  data: a,
  type: 'post',
  success: function(data) {
    alert(data);
  }
});

Затем вы можете получить доступ к данным в вашем скрипте PHP следующим образом:

$_POST['test'];
$_POST['test2'];
    
ответ дан Ionuț G. Stan 04.06.2009 в 15:44
источник
8

Я использовал это:

var newArray = new Array();
newArray.push("item1");
newArray.push("item2");
newArray.push("item3");

$.ajax({  
    type: "POST",
    url: urlToPost,
    data: JSON.stringify(newArray),
    contentType: "application/json"
   });
    
ответ дан aldopizzagalli 15.07.2013 в 15:27
источник
2

Я предпочитаю делать это следующим образом:

т.

var data = [{ name: 'test1', value: 'test data' }, { name: 'test2', value: 'test data' }];

$.ajax({  
    type: 'POST',
    url:  'url',
    data: data,
   });

Сторона сервера (PHP): $_POST['test1']; $_POST['test2'];

    
ответ дан Tom 29.12.2013 в 12:39
источник
1

Вот пример того, как я передаю массивы (из реального кода):

$.ajax({
  type: 'POST',
  url: url,
  data: { CartID : cartID, 'Manufacturers[]' : manufacturers, 'PartNumbers[]' : partNumbers },
  success: function(res)
  {
    ...
  },
  dataType: "json",
  async: false
});

, затем на стороне сервера:

$cartID = $_POST['CartID'];
$manufacturers = $_POST['Manufacturers'];
$partNumbers = $_POST['PartNumbers'];
    
ответ дан nightcoder 24.09.2012 в 05:14
источник