导出CSV时需要解决方案,在excel文件中获取当前页面的HTML代码



这是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 dataCSV 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 codecorrect 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();
}`

最新更新