在wix上,我有一个将一堆信息上载到数据库(名称,电子邮件,地址等)的表单。然后,我有一个单独的页面,该页面从数据库中获取数据并将其编译为CSV格式。
它当前将其输出到一个文本框中,从那里我可以将其复制到txt文件中,并将扩展名更改为csv。这对我来说很好用,但是如果其他人也能做到这一点,我就不会乐观。
所以,我的问题是是否有办法将数据转换为文件然后下载?
我的数据看起来像这样:
“ _ id,lastName,firstname
345893458,史密斯,约翰”
答案 0 :(得分:2)
我想通了,对于任何想知道这是解决方案的人。
您需要在wix页面上创建一个iframe对象
然后您将其html代码更改为类似以下内容:
<!doctype html>
<html>
<head>
<script type="text/javascript">
function init () {
window.onmessage = (event) => {
if (event.data) {
download('data.csv', event.data)
}
}
}
//download file
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
</script>
</head>
<body onload="init();" style="background-color:black;">
</body>
</html>
请注意,设置背景颜色很重要,虽然不确定原因,但我很确定它会以某种方式初始化代码。
接下来,您要将这样的行添加到wix代码编辑器中
export function button2_click(event) {
// send message to the HTML Component
let data = $w('#output').value
$w("#html1").postMessage(data);
}
其中'output'
是包含csv数据的文本框的ID(您可以从其他地方获取数据),而'html1
是iframe容器的ID
确保该功能链接到按钮按下。