我有一个显示html表单的php文件,在提交时,从mysql数据创建一个html表,并将其导出到excel。
我的问题是整个html表单与表数据一起输出到excel文件。
我的代码是:
<html form..>
<?php
if(isset($_POST['submit'])){
//get sql data and create html table in variable (ie $data="<table>..")
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");
echo "$data";}
?>
我只想在我的.xls中显示“$ data”,而是显示整个<form>
,提交按钮等等。
答案 0 :(得分:1)
在标题调用之前,不应将任何输出发送到浏览器。
在提交过程下方定义您的html表单。
<?php
if(isset($_POST['submit'])){
//get sql data and create html table in variable (ie $data="<table>..")
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");
echo "$data";
}
?>
<html form..>
答案 1 :(得分:0)
将包含写入输出缓冲区的所有数据。 标题调用最好在任何输出之前完成。但是对于文件的组织方式,您可以这样做:
<html form..>
<?php if(isset($_POST['submit'])){
//get sql data and create html table in variable (ie $data="<table>..")
// Clean the output buffer so it won't mess up your excel export
ob_clean();
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");
echo $data; // no need for quotes here since you only echo your variable
}
?>
答案 2 :(得分:0)
如果你在表示层(你的html文件中的条件ifs)中执行逻辑,那么将表单代码包装成
就足够了if(!isset($_POST['submit'])){
您最好的方法是将导出操作重定向到其他脚本:)