Показать сообщение отдельно
  #1 (permalink)  
Старый 03.05.2013, 17:50
Интересующийся
Отправить личное сообщение для frutality Посмотреть профиль Найти все сообщения от frutality
 
Регистрация: 30.08.2012
Сообщений: 26

Передать обычный массив (с помощью 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));

Последний раз редактировалось frutality, 03.05.2013 в 17:53. Причина: решение найдено
Ответить с цитированием