如何使用返回CSV文件的php函数处理javascript端

时间:2017-06-15 13:22:16

标签: javascript php ajax csv

我有这个php函数,它返回一个CSV文件。此函数需要我通过url发送的参数$getid

$getid = $_GET['id'];
$funcid = $_GET['funcid'];

if ($funcid == 'get_download') {

function get_download($dbmi, $getid) {

    $stmt = $dbmi->prepare("CALL spStartDownload(?)");
    $stmt->bind_param('i', $getid);
    $stmt->execute();
    $result = $stmt->get_result();

    $fp = fopen('php://output', 'w');
    if ($fp && $result) {
        header('Content-Type: text/csv');
        header('Content-Disposition: attachment; filename="export.csv"');

        fputcsv($fp, $headers, ";");
        while($row = $result->fetch_assoc()) {
          fputcsv($fp, $row, ";");
        }
    }

    $stmt->close(); 

    echo $fp;   
}
}

要发送此参数,我使用此$.ajax()函数:

function startDownload(id) {
    setTimeout(function() { 
        showLoader('start...'); 
        var funcid = "get_download";    
        var jqxhr = $.ajax({
            type: 'GET',
            url: 'functions/getdata.php',
            data: {
                funcid: funcid,
                id: id
            },
            dataType: 'json'
        }).done(function(myData) {
             if (myData == null) {
                showAlert();
             } else {


             }

             hideLoader();

        })          
        .fail(function() {showAlert();}); //When getJSON request fails      
    }, 0);
}

我有点卡在这里因为CSV文件不会开始下载但是当我在浏览器中输入带有两个参数(funcid和id)的url时它确实有用..

有什么想法吗?

0 个答案:

没有答案