我有一个生成 HTML 表格的 PHP 页面。在页面底部,您可以单击“提交”按钮,表中的数据将发送到名为 Table2CSV 的 jquery 脚本(链接在这里 http://www.kunalbabre.com/projects/table2CSV.php),它获取数据,并提交给另一个 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>
我想做的是生成 csv 脚本,而无需将 html 表输出到屏幕(通过链接单击另一个页面)。
我想我最终需要简单地更改上面的 javascript 函数以在页面加载时调用 getCSVdata 然后运行 getcsv.php 但不知道如何准确地执行此操作,因为我对 JS 不太熟悉。
有什么建议么?
如果不研究 table2CSV 函数,我会假设它需要一个 HTML 表元素来从中提取 CSV 数据。这意味着如果您需要使用此脚本,则必须以某种方式生成 HTML 表的代码。
最简单的解决方法是在 div 内创建带有 display:hidden 集的表格。这样,table2CSV 函数仍然可以访问表内的数据,但用户永远不会在页面上看到它。
除此之外,您当然可以随时编写自己的服务器端脚本来将通常在 HTML 表中返回的数据解析为 CSV 文件。
您在这里看到的问题是,数据在服务器上,发送到浏览器,然后由 JS 抓取并提交到服务器再次解析。如果服务器不依赖客户端来解析数据或者客户端能够自行解析数据,事情就会变得更加直接。这两个选项都是可行的,但需要编写您自己的 CSV 文件创建脚本。
编辑:只需阅读上面的评论即可。如果您希望从一开始就可以使用 CSV 文件,则必须在初始化 DOM 后调用 getCSVData()。假设您没有从图像(异步加载)中提取任何数据,您可以:
$(document).ready(function() { getCSVData(); });
一旦页面准备好显示,就会触发您的 CSV 脚本,从而使用户无需额外点击即可使用该脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)