在Dojo按钮上执行PHP脚本单击

在Dojo按钮上执行PHP脚本单击,php,javascript,dojo,Php,Javascript,Dojo,我很确定我已经想得太多了,但我就是想不出来。我有一个DojoButton对象,我想在单击它时执行一个.php文件。php脚本运行一个查询并从中构造一个.xls文件,然后提示用户下载或打开该文件 当我点击这个按钮时,我会看到“loaded xhrGet”日志,但是从来没有出现过提示,所以我不相信脚本确实在运行 <button data-dojo-type="dijit.form.Button" id="export_xls_button">Export to .

我很确定我已经想得太多了,但我就是想不出来。我有一个DojoButton对象,我想在单击它时执行一个.php文件。php脚本运行一个查询并从中构造一个.xls文件,然后提示用户下载或打开该文件

当我点击这个按钮时,我会看到“loaded xhrGet”日志,但是从来没有出现过提示,所以我不相信脚本确实在运行

           <button  data-dojo-type="dijit.form.Button" id="export_xls_button">Export to .xls
                <script type="dojo/method" data-dojo-event="onClick" >
                    dojo.xhrGet({
                        url: 'subRoutines/exportXLS.php',
                        load: function(response){
                            console.debug("loaded xhrGet");
                        },
                        error: function(error){
                            console.debug("error loading xhrGet");
                        }
                    });
                </script>
            </button>
导出到.xls
dojo.xhrGet({
url:'subRoutines/exportXLS.php',
负载:功能(响应){
调试(“加载的xhrGet”);
},
错误:函数(错误){
调试(“加载xhrGet时出错”);
}
});
谢谢你的帮助和建议


编辑:当我在web浏览器中直接访问脚本,并且服务器上打开了php时,脚本运行正常。

您不需要使用XHRs导出文件。您可以使用单击一个标准链接(或dojo按钮),单击该链接时,将执行
子例程/exportXLS.php
。单击链接时,脚本会像普通脚本一样构建文件,并在不离开页面的情况下将文件和相应的http头发送回用户。没有向浏览器发送新的位置标题,只发送了一个文件

这是我在PHP中导出CSV文件时使用的一种简单方法(您可能只需要标题):

您的dojo按钮会变成:

<button data-dojo-type="dijit.form.Button" id="export_xls_button">
    Export to .xls
    <script type="dojo/method" data-dojo-event="onClick" >
        window.location = 'subRoutines/exportXLS.php';
    </script>
</button>

导出到.xls
window.location='subRoutines/exportXLS.php';

导出文件时不需要使用XHRs。您可以使用单击一个标准链接(或dojo按钮),单击该链接时,将执行
子例程/exportXLS.php
。单击链接时,脚本会像普通脚本一样构建文件,并在不离开页面的情况下将文件和相应的http头发送回用户。没有向浏览器发送新的位置标题,只发送了一个文件

这是我在PHP中导出CSV文件时使用的一种简单方法(您可能只需要标题):

您的dojo按钮会变成:

<button data-dojo-type="dijit.form.Button" id="export_xls_button">
    Export to .xls
    <script type="dojo/method" data-dojo-event="onClick" >
        window.location = 'subRoutines/exportXLS.php';
    </script>
</button>

导出到.xls
window.location='subRoutines/exportXLS.php';

您是否使用firebug检查过ajax请求?看起来它得到了某种混乱的响应,类似于我试图导出的表。可能是显示下载提示的问题。响应:您是否使用firebug检查了ajax请求?看起来它得到了某种混乱的响应,类似于我试图导出的表。可能是显示下载提示的问题。答复: