Я знаю, что это должно быть дубликатом. Но я не могу на всю жизнь понять, в чем дело. Я попытался передать массив напрямую, используя json кодирование / декодирование, присоединив массив к jquery, передав его в виде строки и взорвав его .... но я просто не могу заставить свой php работать с передачей данных. Помогите?!
Что-то происходит с кавычками, если я должен был угадать, но я вычеркнул. Если я закомментирую строку, которая извлекает массив, и раскомментирует две строки, в которых я устанавливаю список, и разрываю его, сценарий может быть вызван сам по себе и работает как ожидалось. Но в нынешнем виде он ничего не делает. Я уверен, что упускаю что-то простое, потому что я не знаю достаточно ни о каком языке.
РЕДАКТИРОВАТЬ: ОБНОВЛЕНИЕ: Я смог использовать:
var_dump($_POST);
die();
, чтобы получить следующий ответ в сетевой консоли. Это проливает свет на то, почему скрипт не запускается при передаче массива?
array(1) {
["download_listArray"]=>
array(3) {
[0]=>
string(6) "7391-1"
[1]=>
string(6) "7392-2"
[2]=>
string(6) "7393-3"
}
}
Для полноты картины, вот тот же ответ при использовании метода JSON .stringify:
array(1) {
["download_listArray"]=>
string(26) "["7391-1","7392-2","7393-3"]"
}
Jquery:
console.log(download_list); \\ gives: ["7391-1", "7392-2", "7393-3"]
$.ajax({
type: "POST",
url: "zip_download.php",
data: {download_listArray:download_list},
success: function(){
alert("OK");
}
});
PHP:
<?php
$sample_name_list = $_POST['download_listArray'];
//$sample_name_list = "7391-1,7392-2,7393-3"; #If I use these two lines, the script runs as expected
//$sample_name_list = explode(",", $sample_name_list);
foreach ($sample_name_list as $i => $sample_name){
//do stuff
}