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

执行javascript和php csv导出脚本的最佳方法,php,javascript,jquery,Php,Javascript,Jquery,我有一个生成HTML表的PHP页面。在页面底部,您可以单击“提交”按钮,表中的数据被发送到一个名为Table2CSV()的jquery脚本,该脚本获取数据,并提交到另一个php脚本进行CSV导出 最终,所有的行动都发生在这里: <form action="getCSV.php" method ="post" > <input type="hidden" name="csv_text" id="csv_text"> <input type="submit" valu

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

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

<form action="getCSV.php" method ="post" > 
<input type="hidden" name="csv_text" id="csv_text">
<input type="submit" value="Get CSV File" 
       onclick="getCSVData()"
</form>


<script type="text/javascript">

function getCSVData(){
 var csv_value=$('#example2').table2CSV({delivery:'value'});
 $("#csv_text").val(csv_value); 
}
</script>



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

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

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

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

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

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

这将在页面准备好显示后立即启动CSV脚本,用户无需额外单击即可使用该脚本。

为什么要将表格数据发送到已经存在的服务器?我不确定是否理解您的问题/要点。html表格是在浏览器中可以查看的位置生成的。如果有人想要导出该数据,则必须进行另一次调用,以修改标题信息并使用新的内容类型导出以供下载。lol这是第三方脚本吗?继续,不要偷懒,创建你自己的。这是5行代码如果你不想输出html表,那么在你的php脚本中输出html表就可以了@我从来没有说过我创建了上面的脚本,但它不符合我的需要(事实上我直接链接到另一个页面)。我还提到我不了解JS,所以除非你有什么有用的建议,否则就去找另一个问题来评论。