我必須使用$ .post()將數組從JS傳遞到PHP,使用數組創建文件並下載它。將數據從js傳遞到php並下載創建的csv文件
使用此傳遞數組:
$('#csv').click(function() {
$.post(
window.location + "crawler/save_to_file",
{
dane: wynik //array
});
});
在PHP
現在使用此:
$tablica=$_POST['dane'];
$filename = "export-to-csv.csv";
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Expires: 0");
$fh = fopen('php://output', 'w');
$heading = false;
if(!empty($tablica))
foreach($tablica as $row) {
if(!$heading) {
fputcsv($fh, array_keys($row));
$heading = true;
}
fputcsv($fh, array_values($row));
}
fclose($fh);
但是,當點擊按鈕來創建和下載文件,沒有任何反應。
感謝
代碼更新
JS文件:
$.ajax({
url: window.location + "crawler/",
type: "POST",
dataType: "json",
data: {
wartosc: zmienna
},
success: function (odp) {
wynik = odp; //array
tab = JSON.stringify(odp);
$.post(window.location + "crawler/return_data",
{
data: tab
},
function (data) {
$('#wynik').html(data);
$('.pobierz').show();
}
)
}
})
$('.button').click(function() {
var $form = $('<form action="' + window.location + 'crawler/save_to_csv" method="post"></form>');
$.each(wynik, function() {
$('<input type="hidden" name="dane[]">').attr('value', this).appendTo($form);
});
$form.appendTo('body').submit();
});
而在PHP文件的var_dump陣列:
function save_to_csv()
{
$tablica=$_GET['dane'];
var_dump($tablica);
}
回報:「未定義指數:丹麥」
編輯
$ tablica必須$_POST
沒有$_GET
你檢查了'不爲空$ data'哪裏是'$ data'設置? – RST
哦忘了改變代碼編寫問題的變量,現在更新 – Marcin