当前位置: 首页 > 知识库问答 >
问题:

用javascript将checked Chechbox保存到sqlite数据库中

夏法
2023-03-14

我的ejs中有一个带有几个复选框的表单。在应用程序中,用户应该能够通过选中复选框来选择他的兴趣,这应该保存到sqlite数据库表中。我正在通过bootstrap构建表:

db.exec('CREATE TABLE interests(interest text)');

(不确定要选择哪种类型,所以我将其设置为“文本”,但这很可能是错误的?)。我的表单如下所示

<form name="first_steps" action="first_steps" method="post">
  <ul>
    <li>
        <input type="checkbox" name="interesse" value="theater" id="check1">Theater</label>
    </li>
    <li>
        <input type="checkbox" name="interesse" value="musik" id="check2">Musik</label>
    </li>
    <li>
        <input type="checkbox" name="interesse" value="party" id="check3">Party</label>
    </li>
    <li>
        <input type="checkbox" name="interesse" value="sport" id="check4">Sport</label>
    </li>
</ul>
<input type="submit" value="submit">

null

我发现这篇文章用javascript将结果复选框保存到sqlite数据库中,并尝试将其转换到我的server.js中

(类似这样的东西

app.post('/first_steps', function(req, res) {
var elementen = document.getElementsByName ("interesse");
var tmpChoise;
for (var r= 0; r < elementen.length; r++) {
    if (elementen[r].checked) {
    tmpChoise = elementen[r].value;
    alert(tmpChoise);
    db.run(`INSERT INTO interessen(interesse) VALUES (?)`, [interesse], function(err) {
            return res.redirect('/profil');
        });
  }
 } 
});

但这不管用。它说“referenceerror:document is not defined”)。

有人能告诉我正确的代码是什么样子的吗?我是个新手,什么都想不出来。

(Javascript、express、sqlite3、Node.js)

共有1个答案

戚勇
2023-03-14

server.js文件通常应该工作从表单发布的数据。进程应该类似于:

  1. 显示前端表单
  2. 将前端表单数据发送到服务器
  3. 操作或使用服务器上的数据
  4. 将服务器的一些响应发送回前端。

在您的情况下,不应该尝试查看从document.getElementsByName(“interesse”)中生成的DOM元素,而应该使用存储在res.body中的数据。这样看起来就像:

app.post('/first_steps', function(req, res) {
    data = req.body.interesse;
    db.run(`INSERT INTO interessen(interesse) VALUES (?)`, [data], function(err) {
            return res.redirect('/profil');
        });
  }
 } 
});

或者类似的东西。查看本文获取post数据的示例,然后查看从您的表单发布到控制台日志中的数据,如

 var postBody = req.body;
 console.log(postBody);

(控制台日志输出将位于运行express服务器任何终端中)

 类似资料:
  • 问题内容: 我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(FieldGroup)填充一组文本字段,然后您可以选择保存更改, 我想知道如何保存更改用户对我的postgres数据库进行的更改 。我正在为此应用程序使用vaadin和hibernate模式。到目前为止,我已经尝试做 我努力了 而且我也尝试过 最后两个给我以下错误 问题答案: 我已经弄清楚了如何对数据库进行更改,下面是一些

  • 我正在为我的大学创建一个Android项目,在那里我想用移动指纹传感器制作像指纹考勤系统这样的东西,所以实际上我想把生物特征数据保存到数据库中,以便在考勤时进一步参考。我想将指纹数据保存到移动指纹传感器SQL数据库中。

  • 我们有很多Json日志,并且希望构建我们的Hive数据仓库。将Json日志获取到spark schemaRDD中很容易,并且schemaRDD有一个saveAsTable方法,但它只适用于从HiveContext创建的Schemards,而不是从常规SQLContext创建的Schemards。当我试图使用从Json文件创建的schemaRDD保存Eastable时,它会抛出异常。有没有办法强制它

  • 我想从MongoDB集合中获得我的翻译。我找到了一个使用自定义加载器服务的例子(https://github.com/angula-translate/angula-translate/blob/920a9febc22f61368153d844f7cbefcfebb6ecec/src/service/loader-url.js)。 但是,我想在没有可用的翻译时,在该集合中自动获取我的翻译密钥。有办

  • 我对node js和expressjs框架很陌生。我正在开发一个web应用程序,我被卡住了。我已经设置了所有的数据库要求,所有的工作都很好,现在我想把一些数据保存到数据库中,我把数据存储在一个变量中,但不幸的是,存储在变量(MyID)中的数据没有保存。这是我的密码 var=MyID app.post(“/AddContact”,function(req,res){ }

  • 同样地,为需要存储数据的每个JPA实体创建单独的存储库类是否理想?或者有什么更好的方法可以在有限的存储库类的情况下将数据存储到数据库?