【问题标题】:Download php genereted csv file though jquery/javascript通过jquery/javascript下载php生成的csv文件
【发布时间】:2013-11-04 15:31:08
【问题描述】:

我可以从 php 下载一个 csv 文件,但我需要通过 jquery/javascript 来完成。

什么是最好的解决方案?怎么办?

  • 在 tmp 目录中保存 php 生成的 csv 文件并通过 jquery/JS 下载,但是如何?(内部使用的应用程序)
  • 将数据数组发送回前端,全部在 jquery/JS 中完成。

实际上我想更新页面上的数据并同时下载更改的行! 我不能使用任何类型的插件。

编辑: 行!这里是完整的问题,我忘了提。

我有一个页面,其中包含 DB 中的一些行,

  • 我想更新数据库中的选定行
  • 同时获取更改的值并更新页面上的行
  • 在 csv 中下载更改的行

一键点击,

我不能使用不同的按钮来保存数据和下载文件,因为在更新 db 中的行之后,我将如何获得最后更新的行? 以我有限的知识,我只能得到 json 响应和更新页面或下载文件而不是两者!

【问题讨论】:

  • 使用 AJAX 调用来获取页面上显示的数据,并在 iframe 中打开相同的 URL 以触发文件下载(既然你说你已经可以下载文件那么我假设这意味着你'已正确设置标题以触发下载,而不是打开。)
  • 如果您只希望它用于数据...使用 php 库转换为 JSON...使用 JSON 更简单...从浏览器调用 AJAX 以检索数据

标签: javascript php jquery download export-to-csv


【解决方案1】:

这就是我解决它的方法:)

我用 JS 中的 json 返回数据制作了 csv 字符串。 并使用数据 URI 方案,如下所示: 我创建了一个链接并下载了 .csv 文件。

var uri = 'data:application/csv;charset=UTF-8,' + encodeURIComponent(csv_ouput);
$('#csv-btn-div').append('<a href="' + uri + '"download="csv-export.csv">Download CSV</a>');

还有一个solution,如果你想显示文件保存对话框!

谢谢大家!

【讨论】:

    【解决方案2】:
    $.get("/someCsv.php", function(data) {
      // do stuff here.
    });
    

    确保在服务器端使用某种形式的缓存。

    我更喜欢预处理数据(json):

    $.get("/createJson.php", function(data) {
      // do stuff here.
    });
    

    【讨论】:

    • 我在这里获取我的 JSON 数据,但是如何让它从 $.get 中下载 csv
    • 再次使用 $.get() 获取 csv 文件位置?
    猜你喜欢
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2021-12-23
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多