单击Dojo按钮执行PHP脚本
Executing PHP script on Dojo Button click
我很确定我想得太多了,但我就是想不通。我有一个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>
感谢您的帮助或建议。
编辑:当我在web浏览器中直接访问脚本,并且在服务器上打开php时,脚本运行得很好。
导出文件时不需要使用XHR。您可以使用单击一个标准链接(或dojo按钮),当单击该链接时,它将执行subRoutines/exportXLS.php
。单击链接后,脚本会像正常情况一样构建文件,并在不离开页面的情况下将文件和相应的http标头发送回用户。没有新的位置标头发送到浏览器,只有一个文件。
这是我用PHP导出CSV文件的一种简单方法(您可能只需要标题):
$fh = fopen("php://output", 'w');
fputcsv($fh, $csv_headers_array, ",", '"');
foreach ($csv_content_array as $line) {
fputcsv($fh, $line, ",", '"');
}
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=filename.csv");
fclose($fh);
exit;
你的道场按钮变成了类似于:
<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>
相关文章:
- php脚本中无法识别ajax传递的值
- 使用JS在服务器上运行PHP脚本
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- jQuery DataTable返回带有数据的PHP脚本
- 通过JavaScript设置的表单字段的值不会作为$_POST的一部分传递给PHP脚本
- 单击Dojo按钮执行PHP脚本
- 将javascript函数传递给.php脚本
- 使用Ajax或JavaScript选择下拉列表选项后,在同一页面上执行PHP脚本
- AJAX和php脚本后添加的表单元素未传输到$_POST
- jquery ajax到php脚本不保存数据
- 有没有一种方法可以生成Braintree令牌,而不必向我的服务器添加PHP脚本
- 如何使用jQuery将所选文件传递到php脚本
- PHP脚本在Lion上通过Ajax运行时会回显自己的内容
- Codeigniter :通过 AJAX 调用 php 脚本时路由不起作用
- 使用 jQuery 从运行 MySQL 的 PHP 脚本返回信息
- 我将如何在将数据发布到 php 脚本的 javascript 脚本中输入变量
- 在 ajax 成功中触发 php 脚本
- 使用同一页面上的按钮访问 php 脚本
- 从 PHP 脚本预缓存第二个图像