更新MongoDB的复选框信息
Updating MongoDB with checkbox information
所以我正在学习Node.js和Express,并用它来制作一个简单的web应用程序,在mongoDB数据库上进行CRUD操作。我可以成功地将信息插入数据库并更新它,但我似乎无法弄清楚如何更新复选框信息。注意,我查看了使用JavaScript将复选框值传递给数据库,它没有帮助,因为它在meteor.js
中在我的EJS文件中。这是用户为了更新数据库中的匹配条目而必须插入的信息。为简洁起见,我省略了表单中的一些元素。
<div id="editForm" hidden>
Enter name of the entry you want to edit?<input type="text" placeholder="full name" id="editItem" name="editItem" required><br>
Full Name<input type="text" placeholder="full name" id="fullName" name="name" required><br>
Age <input type="number" name="age" min="18" max="95" id="age" required><br>
Programming Languages <br> <input type="checkbox" class="p_languages2" name="p_languages2" value="Java" required>Java
<input type="checkbox" name="p_languages2" class="p_languages2" value="C++">C++
<input type="checkbox" name="p_languages2" class="p_languages2" value="Python">Python
<input type="checkbox" name="p_languages2" class="p_languages2" value="Ruby">Ruby
<input type="checkbox" name="p_languages2" class="Jp_languages2" value="JavaScript">JavaScript<br>
Available to start work? <input type="date" id="start_date" name="start_date" required><br>
Life Motto? <input type="text" placeholder="motto" id="motto" name="motto" required><br>
<button onClick='putRequest()' type="submit" id="editEntry">Submit</button>
</div>
function putRequest() {
fetch('/view', {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
'editedItem': document.getElementById("editItem").value,
'name': document.getElementById("fullName").value,
'age': document.getElementById("age").value,
//how can I extract the checkboxes?
'start_date': document.getElementById("start_date").value,
'motto': document.getElementById("motto").value
})
})
window.location.reload(true);
这是我想要的额外信息。注意"p_languages": req.body。p_languages只是一个占位符,我知道它不起作用。
app.put('/view', function(req, res) {
console.log("Put is working!");
db.collection('jobs').findAndModify(
{"name": req.body.editedItem },
{},
{$set:
{ "name": req.body.name , "job_title": req.body.job_title, "gender": req.body.gender,
"p_languages": req.body.p_languages, "age": req.body.age, "start_date": req.body.start_date,"motto": req.body.motto }
},
{},
function(err, object) {
if (err){
console.warn(err.message); // returns error if no matching object found
}else{
console.log("Update complete");
}
})
})
您可以像这样通过name
属性引用所有复选框,var checkboxes = document.getElementsByName("p_languages2");
。这将返回带有p_languages2
的数组复选框。现在,您只需要迭代该数组并获得选中checkboxes[i].checked
的所有复选框的value
,并将该值存储在数组中并在服务器上更新该数组。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 在单击父复选框的同时获取子复选框的详细信息
- 在选中的复选框中填写详细信息
- 如何从输入复选框中获取值以在查询中使用它来显示信息
- 如何在使用值时输出复选框详细信息
- jQuery验证,将错误信息放在复选框和单选按钮组的下面
- 从多个复选框和单选按钮获取信息
- 我如何在引导中验证至少有一个复选框被标记并将此信息传递给php ?
- 更新MongoDB的复选框信息
- 从复选框中获取信息
- 存储会话的复选框信息
- 为什么不'我的php代码是否使用复选框信息来迭代我的开关
- 如何在将鼠标悬停在复选框上时显示一些信息