no ten Prototype som teda odstranil a vytiahol som z neho iba niektore funkcie, co som potreboval.
mam este jednu prosbu - mam HTML tabulku, do ktorej moze uzivatel pisat udaje. potrebujem spravit ajaxovu funkciu na export tej tabulky do csv suboru, ktory to uzivatelovi ponukne na stiahnutie. cize uzivatel vyplni tabulku, stlaci button a bude si moct tu jeho vyplnenu tabulku stiahnut v csv formate.
napisal som teda funkciu v javascripte, ktora sa zavola po stlaceni tlacitka. ta precita hodnoty z tabulky a posle ich PHP skriptu, ktory tie hodnoty spracuje a vypise ich v csv formate. tu je ale moj problem, ze neviem ako to dat dokopy. kedze v tom PHP skripte musim menit header() informacie na to, aby to uzivatelovi ponuklo download, nemal by byt pred tym ziadny vystup, ale neviem ako to cez ten ajax riesit.
zatial som teda vyprodukoval nieco taketo.
JavaScript funkcia na export
Kód:
function userExport1(){
var vars = getValues(form_name);
xmlHttp=GetXmlHttpObject();
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4) {
if (xmlHttp.status == 200)
{
alert(xmlHttp.responseText);
}
else
{
alert('bad response');//target.submit();
}
}
}
xmlHttp.open("POST","export.php?asd="+Math.random(),true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=UTF-8');
xmlHttp.send(vars);
}
PHP skriptKód:
<?php
header("Content-Disposition: attachment; filename=\"my-data.csv\"");
header('Content-Type: application/csv');
$j = $_POST['j'];
$y = $_POST['y'];
$p = $_POST['p'];
$a = $_POST['a'];
$h = $_POST['h'];
$x = 0;
while($j[$x] != "" OR $y[$x] != "" OR $p[$x] != "" OR $a[$x] != "")
{
echo "$j[$x];$y[$x];$p[$x];$a[$x]\n";
$x++;
}
?>
pre testovacie ucely som si do tej JS funkcie hodil alert(xmlHttp.responseText); a vsetko funguje, text je sformatovany spravne, len miesto toho alertu to chcem spravit tak, aby to userovi hned ponuklo download