Php 将数据导出到excel的AJAX调用

Php 将数据导出到excel的AJAX调用,php,ajax,excel,jscript,Php,Ajax,Excel,Jscript,EDIT我刚刚意识到我必须对AJAX调用中作为参数传递给URL的fromDate进行json\u编码。所以我需要使用 url: 'json-responses.php?fct=exportTo...ByDate&regDate=' + <?php echo json_encode($fromDate) ;?> export.php拥有所需的PDO.dsn数据,然后调用export函数exportToExcelMembersByDate($PDOdbObject,$regDa

EDIT我刚刚意识到我必须对AJAX调用中作为参数传递给URL的fromDate进行
json\u编码。所以我需要使用

url: 'json-responses.php?fct=exportTo...ByDate&regDate=' + <?php echo json_encode($fromDate) ;?>
export.php拥有所需的PDO.dsn数据,然后调用export
函数exportToExcelMembersByDate($PDOdbObject,$regDate)
export.php

<form method="post" action="export.php">
    <input type="submit" name="export" value="Export" />
</form>
exportToExcelMembersByDate($pdo, "2013-09-12");

function exportToExcelMembersByDate($PDOdbObject, $regDate)
    {
    .
    .
    .
    header('Content-Type: application/xls');
    header('Content-Disposition: attachment; filename=download.xls');
     echo $output;
    }
<?php
    $fromDate = $_POST['fromDate'];
?>
<script>
     $("#export").click(function ()
     {
        exportToExcel();
     }
        );

     function exportToExcel()
     {
        $.ajax({
            type: 'GET',
            dataType: 'html',
            url: 'json-responses.php?fct=exportToExcelMembersByDate&regDate= + <?php echo $fromDate ;?>,
        })
     } 
</script>

<div> 
    <input type="button" id="export" value="Export to Excel" />
</div>
 if ($_GET['fct'] == 'exportToExcelMembersByDate')
    {   
        $result = exportToExcelMembersByDate($connectionObject, $_GET['regDate']);
        echo $result;
    }
$output
中包含一个表。当我点击按钮时,我立即会弹出一个窗口,询问我是否要保存或打开excel文件

现在我想在现有环境中实现相同的解决方案。 我将函数
exportToExcelMembersByDate
复制到现有的
data layer.php

在相应的网页中,我有以下内容 Source.php

<form method="post" action="export.php">
    <input type="submit" name="export" value="Export" />
</form>
exportToExcelMembersByDate($pdo, "2013-09-12");

function exportToExcelMembersByDate($PDOdbObject, $regDate)
    {
    .
    .
    .
    header('Content-Type: application/xls');
    header('Content-Disposition: attachment; filename=download.xls');
     echo $output;
    }
<?php
    $fromDate = $_POST['fromDate'];
?>
<script>
     $("#export").click(function ()
     {
        exportToExcel();
     }
        );

     function exportToExcel()
     {
        $.ajax({
            type: 'GET',
            dataType: 'html',
            url: 'json-responses.php?fct=exportToExcelMembersByDate&regDate= + <?php echo $fromDate ;?>,
        })
     } 
</script>

<div> 
    <input type="button" id="export" value="Export to Excel" />
</div>
 if ($_GET['fct'] == 'exportToExcelMembersByDate')
    {   
        $result = exportToExcelMembersByDate($connectionObject, $_GET['regDate']);
        echo $result;
    }
但在这里,当我点击按钮时,什么都没有发生。在AJAX中我尝试过。
async:true/false
数据类型:json/txt/html
类型:'POST'/'GET'

可能重复的请求没有理由通过Ajax发出请求,因为通过表单发出请求会在不离开当前页面的情况下下载文件。@Anthony:我尝试了
windows.location…
,但是这不起作用使用现有的文件结构。如何从另一个文件中的JavaScript启动data-layer.php文件中的php函数?或者,唯一的解决方案是为我想要导出的每个表创建一个单独的
export.php
文件,并像在测试用例中那样调用它吗?你的意思是如何将from date传递到export.php?不,问题是我是否可以在data-layer.php文件中启动导出功能,而不是使用export.php文件