Я пытаюсь экспортировать данные в Excel на основе выбранного пользователем столбца из флажков, однако имя столбца объединяется в одну ячейку, а не сохраняется в столбцах. Может кто-нибудь сказать мне, как решить эту проблему? Ниже приведены мой код и мой вывод ошибок
Текущий вывод, который является неправильным:
html
<form action="" id="colfilter">
<input type="checkbox" name="column[]" class="column" value="[Column1]">
<input type="checkbox" name="column[]" class="column" value="[Column2]">
<input type="checkbox" name="column[]" class="column" value="[Column3]">
<input type="checkbox" name="column[]" class="column" value="[Column4]">
<a href="#" id="export">Download Full Data</a>
</form>
jquery
/*******export to excel*********/
$('#export').click(function(){
var colarray = [];
var exportdata = 'true';
$(".column").each(function(){
if($(this).is(":checked"))
{
colarray.push($(this).val());
}
});
colarray = colarray.toString();
$.ajax({
url: "exportxls_file.php",
method:"GET",
data: {exportdata:exportdata, colarray:colarray},
success: function(){
window.open(this.url,'_blank' );
}
});
});
exportxls_file.php
if($_GET['exportdata'] == 'true'){
$colarray = $_GET['colarray'];
/***Replace [ and ] with open and close single quote******/
$string1 = ['[',']'];
$string2 = ["'","'"];
$newcolarray = str_replace($string1, $string2, $colarray);
$delimiter = ",";
$filename = date('d-M-y') . ".csv"; // Create file name
//create a file pointer
$f = fopen('php://memory', 'w');
$fields = array($newcolarray);
fputcsv($f, $fields, $delimiter);
//move back to beginning of file
fseek($f, 0);
//set headers to download file rather than displayed
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '";');
//output all remaining data on a file pointer
fpassthru($f);
}