如何使用javascript将表单数据附加并保存到txt文件

Posted

技术标签:

【中文标题】如何使用javascript将表单数据附加并保存到txt文件【英文标题】:How to append and save form data to txt file using javascript 【发布时间】:2020-08-24 04:34:59 【问题描述】:

我有这个 html 代码:

<form  action="" method="post" id="formToSave">
                <h1>Subscribe For Latest Blogs</h1>
                <p>Please subscribe in my website using your email address for latest updates about my blogs and publications.</p>
                <div class="email-box">
                    <i class="fas fa-envelope"></i>
                    <input class="tbox" type="email" name="email" id ="email" value="" placeholder="Enter Your Email Address">
                    <m><button class="btn" type="submit" name="button" onclick="saveFile()" >Subscribe</button></m>
                </div>
            </form>

还有这个javascript代码:

<script>
    let saveFile = () => 
        const email = document.getElementById('email');
        let data = email.value;
        const textToBLOB = new Blob([data],  type: 'text/plain' );
        
</script>

我想将电子邮件地址表单数据保存到文本文件中,并将更多电子邮件地址附加到该文件中。接下来我该怎么办?

【问题讨论】:

【参考方案1】:

首先,我建议在服务器中执行此操作,因为浏览器 javascript 无法访问文件系统并且无法将新文本附加到文件中。但是,如果您需要一个包含仅由一位客户提供的电子邮件的文本文件,则以下代码可能会有所帮助。请记住,这仅适用于客户端,对于没有服务器的订阅系统没有帮助。

const emailsList = []

function addEmailToList() 
  const email = document.getElementById('email')
  const  value  = email
  emailsList.push(value)


function downloadFile() 
  const textFile = btoa(emailsList.join('\n'))
  const saveElement = document.createElement('a')
  saveElement.href = `data:text/plain;base64,$textFile`
  saveElement.download = 'myList.txt'
  document.body.appendChild(saveElement)
  saveElement.click()
  document.body.removeChild(saveElement)
<form action="" method="post" id="formToSave">
      <h1>Subscribe For Latest Blogs</h1>
      <p>Please subscribe in my website using your email address for latest updates about my blogs and publications.</p>
      <div class="email-box">
        <i class="fas fa-envelope"></i>
        <input class="tbox" type="email" name="email" id="email" value="" placeholder="Enter Your Email Address" />
        <m><button class="btn" type="button" name="button" onclick="addEmailToList()">Subscribe</button></m>
        <m><button class="btn" type="button" name="button" onclick="downloadFile()">Download TextFile</button></m>
      </div>
    </form>

【讨论】:

以上是关于如何使用javascript将表单数据附加并保存到txt文件的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:单击提交按钮时如何将隐藏的输入标签附加到表单中?

使用 jquery/javascript 将数据从 html 表单保存到文本文件

如何将 HTML 表单中的数据保存到 WordPress 中的数据库表中?

将数据字段附加到保存到表中的记录

表单不会将数据保存到 mySQL 表中

如何将动态表单保存到数据库/编辑表单回来