执行javascript和php csv导出脚本的最佳方法

我有一个生成HTML表格的PHP页面。 在页面底部,您可以单击“提交”按钮,表中的数据将发送到名为Table2CSV( 此处为链接 )的jquery脚本,该脚本获取数据,并提交到另一个PHP脚本以进行CSV导出。

最终,所有行动都发生在这里:

<input type="submit" value="Get CSV File" onclick="getCSVData()"
function getCSVData(){ var csv_value=$('#example2').table2CSV({delivery:'value'}); $("#csv_text").val(csv_value); }

我想要做的是生成csv脚本,而不必将html表输出到屏幕(通过链接点击另一页)。

我想我最终需要简单地改变上面的javascript函数来在页面加载时调用getCSVdata然后运行getcsv.php但不确定如何完全按照我对JS不太熟悉的方式执行此操作。

有什么建议?

在不查看table2CSV函数的情况下,我假设它需要一个HTML表元素来从中提取CSV数据。 这意味着如果需要使用此脚本,必须以这种或那种方式生成HTML表的代码。

最简单的解决方法是使用display:hidden set在div中创建表。 这样table2CSV函数仍然可以访问表中的数据,但用户将永远不会在页面上看到它。

除此之外,您当然可以编写自己的服务器端脚本来将通常在HTML表中返回的数据解析为CSV文件。

您在这里看到的问题是数据在服务器上,被发送到浏览器,然后被JS抓取以提交给服务器再次进行解析。 如果服务器不依赖于客户端来解析数据或者客户端能够自己解析数据,事情会更直接。 这两个选项绝对可以,但需要编写自己的CSV文件创建脚本。

编辑:请阅读上面的评论。 如果您想从一开始就使用CSV文件,则必须在初始化DOM之后调用getCSVData()。 假设您没有从图像中提取任何数据(以异步方式加载),您可以:

 $(document).ready(function() { getCSVData(); }); 

一旦页面准备好显示,这将激活您的CSV脚本,使用户无需额外点击即可使用它。