Есть ли способ создать файл из данных CSV и скачать его - PullRequest
1 голос
/ 03 апреля 2019

В WIX у меня есть форма, которая загружает кучу информации в базу данных (имя, адрес электронной почты, адрес и т. Д.).Затем у меня есть отдельная страница, которая берет данные из базы данных и компилирует их в формат CSV.

В настоящее время это выводит это в текстовое поле, которое я могу скопировать в текстовый файл и изменить расширение на CSV,Это прекрасно работает для меня, но я не уверен, что другие смогут сделать то же самое.

Итак, у меня вопрос: есть ли способ преобразовать эти данные в файл и загрузить его?

мои данные выглядят примерно так:

"_ id, lastName, firstName

345893458, Smith, John"

1 Ответ

2 голосов
/ 04 апреля 2019

Я понял это, для всех, кто задается вопросом, вот решение.

Вам нужно создать объект iframe на своей странице wix

, затем вы измените его 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 (вы можете получить данные из другого места) и 'html1 в качестве идентификатора контейнера iframe

makeуверен, что функция связана с нажатием кнопки.

...