Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Передать обычный массив (с помощью ajax) (https://javascript.ru/forum/jquery/37713-peredat-obychnyjj-massiv-s-pomoshhyu-ajax.html)

frutality 03.05.2013 17:50

Передать обычный массив (с помощью ajax)
 
Доброго времени суток.

Возникла потребность передать обычный массив с помощью AJAX.
var personal_set = [1,3,2];
personal_set.push(value); // перед отправкой элементы добавляются только таким методом
personal_set.splice(jQuery.inArray(value, personal_set), 1); // а удаляются - таким. Это происходит в зависимости от действий пользователя.
// в конце концов, остается одномерный массив
alert(personal_set); // вернет что-то вроде "1,3,2,14"
$.ajax({ // отправляем данные
            url: 'path/to/php_script',
            type: 'post',
            data: {personal_set: personal_set}
});


PHP-скрипт выводит данные вот так:
var_dump($_POST);


Результат:
array(1) {
  ["personal_set"]=>
  array(4) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "3"
    [2]=>
    string(1) "2"
    [3]=>
    array(1) {
      [0]=>
      string(2) "14" // обратите внимание на этот элемент
    }
  }
}


Элементы, содержащиеся в массиве изначально - ОК.
Элементы, добавленные push-ем - добавляются в виде одноэлементных массивов. Почему так происходит и как с этим бороться?

UPDATE: в очередной раз, стоит написать на форум, проблема решается. Решение:
personal_set.push(parseInt(value, 10));


Часовой пояс GMT +3, время: 19:19.