这是Export
按钮的HTML
代码:
<form method="post" name="download_csv" class="pull-right" enctype="multipart/form-data">
<button type="submit" name="Export" class="btn btn-success" >Export to excel</button>
</form>
这是Exporting data
要CSV
PHP
代码:
// DB data Export to Excel
if(isset($_POST['Export'])){
header('Content-Type: text/csv; charset= utf-8');
header('Content-Disposition: attachment; filename= data.csv');
$output= fopen("php://output", "w");
fputcsv($output, array('Id','Name','Address', 'Contact no.','Email'));
$query = "Select id,name,address,contact,emailcontact from addresses where user_id='".$_SESSION['id']."' ORDER By id ASC";
$result = mysqli_query($conn, $query);
while($row= mysqli_fetch_assoc($result)){
fputcsv($output, $row);
}
fclose($output);
}
但是当我单击Export to excel
按钮时,它会导出带有current page's
html code
的correct data
。我不知道为什么会这样。任何解决方案都值得赞赏。
因为您的表单操作指向同一脚本。您应该执行条件检查以避免在同一脚本中出现这种情况,或者只需更改操作 URL。
此问题可通过添加以下内容来解决: exit();
在我的PHP
脚本末尾。
现在应该是:
`// DB data Export to Excel
if(isset($_POST['Export'])){
header('Content-Type: text/csv; charset= utf-8');
header('Content-Disposition: attachment; filename= data.csv');
$output= fopen("php://output", "w");
fputcsv($output, array('Id','Name','Address', 'Contact no.','Email'));
$query = "Select id,name,address,contact,emailcontact from addresses where user_id='".$_SESSION['id']."' ORDER By id ASC";
$result = mysqli_query($conn, $query);
while($row= mysqli_fetch_assoc($result)){
fputcsv($output, $row);
}
fclose($output);
exit();
}`