2
I have a data set in the database in my back end, and I need to create a button on which the user will click to export this data in CSV format. But I have never done this type of event in J. Someone can help me?
2
I have a data set in the database in my back end, and I need to create a button on which the user will click to export this data in CSV format. But I have never done this type of event in J. Someone can help me?
0
You can create an Ajax by returning from a PHP page (or another script back-end) the list of data coming from the database separated by comma and the user can download the file .csv
:
The Javascript is this:
function baixar(){
link_ = document.querySelector("#downloadcsv");
if(link_){
link_.outerHTML = '';
}
var http = false;
http = new XMLHttpRequest();
var url_="retorno.php";
http.open("GET",url_,true);
http.onreadystatechange=function(){
if(http.readyState==4){
var forma = "data:text/csv;charset=utf-8,";
forma += http.responseText;
// se quiser os valores separados por ; (ponto e vírgula)
// substitua a linha acima por:
// forma += http.responseText.split(",").join(";");
var encoda = encodeURI(forma);
var baixa = document.createElement("a");
baixa.setAttribute("href", encoda);
baixa.setAttribute("id", "downloadcsv");
baixa.setAttribute("download", "arquivo.csv");
document.body.appendChild(baixa);
baixa.click();
}
}
http.send(null);
}
Where retorno.php
is the PHP page that will return the database data. The returned data should come in the format below:
dado1,dado2,dado3
And arquivo.csv
is the name of the file that will be downloaded.
You must create a button on the page with the name "Download file" which will call the above function:
<input type="button" value="Baixar arquivo" onclick="baixar()">
Or you can create a link:
<a href="javascript:void(0)" onclick="baixar()">Baixar arquivo</a>
Browser other questions tagged javascript csv javascript-events
You are not signed in. Login or sign up in order to post.
Fantastic... Thank you so much!!
– Marcus Botelho
@Marcusbotelho Valeu! Consider scoring in the answer if you found it useful. Abs!
– Sam
It did. Again, thank you!
– Marcus Botelho