Отправка нескольких массивов с помощью jQuery.post()

Я посмотрел и не могу найти ответ на этот вопрос. В настоящее время у меня есть массив, который я называю dataArray. DataArray содержит 2 ключа (имя, значение) и настраивается следующим образом: dataArray.push({name: file.name, value: this.result}); Я передаю этот массив в свой PHP файл, используя метод.post(): $.post('upload.php', dataArray[index], function(data) {}. Затем в файле upload.php я извлекаю данные, используя:

$file = $_POST['value'];
$name = $_POST['name'];

Это прекрасно работает для того, что мне нужно. Мой вопрос в том, как передать и получить 2 отдельных массива. У меня есть другой массив, называемый "position", который я также хотел бы отправить, используя метод.post(). Этот массив настроен так: position.push({left: 0, top: 0}); Кажется, я не могу найти способ передать их оба в одно и то же время.

2 ответа

Вы всегда можете передать объект javascript с двумя массивами в нем...

Как это:

arrayData= {
 array1 = [],
 array2 = []
};
$.ajax({
 type: "POST",
 url: 'http://post.url',
 data: arrayData
});

Получите в php скрипт следующим образом:

$arrayData = $_POST['arrayData'];
foreach($arrayData as $value) {
 //$value['array1']
 //$value['array2']
}


Разве вы не можете просто сделать что-то вроде:

dataArray.push({left:0,top:0};

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

$left = $_POST['left'];
$right= $_POST['right'];

licensed under cc by-sa 3.0 with attribution.