@JustFool

Как передать массив методом post с помощью ajax?

$('#tablePaySave').click(function() {
	var test = [];
	var month = 1;
	var year = $('#tablePayYear').val();
	$('.table').find(':input').each(function(i, input) {
		var cell = [];
		cell['id'] = input.id;
		cell['type'] = $(this).data('type');
		cell['value'] = input.value;
		cell['month'] = month;
		month++;
		if (month > 12) {
			month = 1;
		};
		cell['year'] = year;
		test.push(cell);
	});

	$.ajax({
		type: "POST",
		url: "/accounting/save",
		data: test,
		dataType: "json",
		success: function(data) {
			console.log('success');
		},
		error: function(data) {
			console.log('error');
		}
	});
});


Он как то странно передает только то что я получил с input.value. и то undefined.
Вот Form Data:
undefined:500000
undefined:450000
undefined:500000
...
  • Вопрос задан
  • 9700 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
$('#tablePaySave').click(function() {
  var test = [];
  var month = 1;
  var year = $('#tablePayYear').val();
  $('.table').find(':input').each(function(i, input) {
    var cell = {};
    cell['id'] = input.id;
    cell['type'] = $(this).data('type');
    cell['value'] = input.value;
    cell['month'] = month;
    month++;
    if (month > 12) {
      month = 1;
    };
    cell['year'] = year;
    test.push(cell);
  });

  $.ajax({
    type: "POST",
    url: "/accounting/save",
    data: {test: test},
    dataType: "json",
    success: function(data) {
      console.log('success');
    },
    error: function(data) {
      console.log('error');
    }
  });
});


var cell = {};
...
data: {test: test},
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
1. Протокол HTTP предусматривает передачу исключительно текстовых данных. Чтобы передать данные объекта, его нужно сериализовать.

2. У вас написано:
var cell = [];
Далее вы указываете массиву свойства, но не значения. Зачем? Вы используете эту переменную в качестве объекта, так и объявляйте её объектом. А так вы этот массив должны сами сериализовать.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы