请教一个PHPExcel问题 ajaxphpphpexcel 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 返回的文件流被 ajax 接收了,自然不会出现下载啦你可在收到 ajax 请求后,将 excel 文件生成在服务器中,只返回连接由 ajax 交给 A 或 IFRAME 标记下载 还是不太懂,excel生成在服务器,返回什么链接,ajax又如何使用a标签下载? 如果你不用 ajax,而用连接传递参数,这样会做吗? function execl的作用是拼接參數,提交到url1。如果可以改成get傳遞參數,這樣寫應該就可以下載了function excel(url1,params){ window.location = url1+"?"+ url1+"?"+"&r="+Math.random() + params;}或者使用版主提供的方法。如果excel比較大,用戶需要等待excel生成完才可以下載。而用文件流則可以一邊下一邊生成。看具體需求了。 改正一下,應該這樣。function excel(url1,params){ window.location = url1+"?"+"&r="+Math.random() + "&" + params;} 例如請求后,需要返回一個execlphpexecl有個savetofile的方法的,用這個,然後會生成一個execl文件。之後把這個文件的路徑,例如http://www.example.com/excel/a.xls 返回給js,js 再用window.location 調用下載就可以。 不会做,还有就是,我运行环境是IE9下,get方法行不通,ie9使用get方法没反应,post方法就能成功运行,这是我测试发现的。 我试了,phpexcel没有savetofile方法,我的是最新版phpexcel从官网下载的。另外是先试试你在 5楼 说的方法,多谢指导! function excel(url1,params){ window.location = url1+"?"+"&r="+Math.random() + "&" + params; }再问个问题,修改excel函数后,在php咋接收参数啊,这样就不使用ajax了吧,那我在php还能post得到参数吗? 是没有 savetofile 方法但是有 save 方法 function excel(url1,params){ window.location = url1+"?"+params+"&r="+Math.random() ; } 改用这个方法的确能弹出下载窗口了,但为什么在php使用$_GET['bbsty']接收不到url传递的参数?谁能帮帮我,在线等 你傳遞的參數有bbsty麼?如果其他參數可以,這個不行,估計是寫錯名稱了。alert(url1+"?"+params+"&r="+Math.random()); 看看有什麼。 有的,我在function excel里alert(url1+"?"+params+"&r="+Math.random()); 查看是正常的, txtdate 和 dev 用$_GET都能拿到? 只有bbsty不行? 這麼奇怪 txtdate 、dev 、bbsty用$_GET都不能接收到,print_r($_REQUEST);什么也没有,是很奇怪,就是get接收不到,一个参数都收不到 贴出 ExportToExcel.php 可省去数据库操作和excel生成部分的代码你的 ajax 是 post 方式发送数据的,显然这个程序不会有读取 get 方式数据的代码 改用这个函数后,就不使用ajax了,button的onclick事件就是function excel(url1,params)<td width="18%" align="left"><input type="button" name="export" id="export" value="导出" style="cursor:hand" onClick="exportExcel()"> <script language="javascript"> function exportExcel() { var txtdate= document.getElementById("txtdate").value; var bbsty= document.getElementById("bbsty").value; var dev= document.getElementById("dev").value; //定义url var url="ExportToExcel.php"; //定义参数 var params="txtdate="+txtdate+"&bbsty="+bbsty+"&dev="+dev; //调用ajax 进行交互 //excel(url,params); //alert(url+"?"+params+"&r="+Math.random()); window.location = url+"?"+params+"&r="+Math.random(); } </script> </td> ExportToExcel.php关键接收代码就几行,剩下代码是操作数据库并处理结果,和生成excel的$bbsty= $_GET['bbsty']; $dev= $_GET['dev']; $days= (int)date('t',strtotime($_GET['txtdate'])); //获取查询月份的总天数 /*echo "<script>alert("+$dev+")</script>";exit;*/ 可能我的运行环境有关,get方法使用不了。多谢二位的指导,让我学到很多东西,不过我分不多,见谅了 关于thinkphp跳转页面success.html内容出现乱码 如何去掉其中某个超链接? PHP面试题 急救:PHPExcel获取不多列数 请问正则表达式如何解析这种语句:add(1,2,3) 用php实现MVC,大家看看我的想法对不对 请大家仔细评论一下这两个网站! mysql数据更新问题? mysql是否支持并发?它与PostgreSQL相比有什么优缺点? 自定义HTTP抓包和过滤 类继承的问题 wampserver集成环境中配置虚拟主机总是出现403Forbidden
你可在收到 ajax 请求后,将 excel 文件生成在服务器中,只返回连接由 ajax 交给 A 或 IFRAME 标记下载
如果可以改成get傳遞參數,這樣寫應該就可以下載了function excel(url1,params){
window.location = url1+"?"+ url1+"?"+"&r="+Math.random() + params;
}
或者使用版主提供的方法。如果excel比較大,用戶需要等待excel生成完才可以下載。而用文件流則可以一邊下一邊生成。
看具體需求了。
window.location = url1+"?"+"&r="+Math.random() + "&" + params;
}
例如請求后,需要返回一個execl
phpexecl有個savetofile的方法的,用這個,然後會生成一個execl文件。之後把這個文件的路徑,例如http://www.example.com/excel/a.xls 返回給js,js 再用window.location 調用下載就可以。
再问个问题,修改excel函数后,在php咋接收参数啊,这样就不使用ajax了吧,那我在php还能post得到参数吗?
但是有 save 方法
{
window.location = url1+"?"+params+"&r="+Math.random() ;
}
改用这个方法的确能弹出下载窗口了,但为什么在php使用$_GET['bbsty']接收不到url传递的参数?谁能帮帮我,在线等
你傳遞的參數有bbsty麼?如果其他參數可以,這個不行,估計是寫錯名稱了。alert(url1+"?"+params+"&r="+Math.random()); 看看有什麼。
<td width="18%" align="left"><input type="button" name="export" id="export" value="导出" style="cursor:hand" onClick="exportExcel()">
<script language="javascript">
function exportExcel()
{
var txtdate= document.getElementById("txtdate").value;
var bbsty= document.getElementById("bbsty").value;
var dev= document.getElementById("dev").value;
//定义url
var url="ExportToExcel.php";
//定义参数
var params="txtdate="+txtdate+"&bbsty="+bbsty+"&dev="+dev;
//调用ajax 进行交互
//excel(url,params);
//alert(url+"?"+params+"&r="+Math.random());
window.location = url+"?"+params+"&r="+Math.random();
}
</script>
</td>
ExportToExcel.php关键接收代码就几行,剩下代码是操作数据库并处理结果,和生成excel的
$bbsty= $_GET['bbsty'];
$dev= $_GET['dev'];
$days= (int)date('t',strtotime($_GET['txtdate'])); //获取查询月份的总天数
/*echo "<script>alert("+$dev+")</script>";exit;*/