当前位置: 代码迷 >> JavaScript >> 使用JavaScript将复选框值传递给数据库
  详细解决方案

使用JavaScript将复选框值传递给数据库

热度:20   发布时间:2023-06-03 17:49:14.0

我发现复选框是一个强大的工具,但是我很难将它们包裹起来。 我希望客户指定他们喜欢哪种厨房(快餐,意大利菜,寿司等)。 后来我想问餐馆他们提供什么厨房,并根据结果我想匹配顾客和餐馆。 我认为将所有选择保存在厨房数组中会很好。 这是个好方法吗?还是通常将每个选择保存为单独的变量? 我的html看起来像这样:

<template name="hello">
    <form class="main form page">
    <div class="form-group">
      <label class="control-label" </label>
    <div class="checkbox">
      <label> <input  name="kitchen" type="checkbox" class="kitchen" id="italian"> italian</label>
    </div>
    <div class="checkbox">
      <label> <input name="kitchen" type="checkbox" class="kitchen" id="sushi"> sushi </label>
    </div>
    <div class="checkbox">
      <label><input name="kitchen" type="checkbox" class="kitchen" id="fastfood"> fast food </label>
    </div>
  </form>
</template>

问题是我不知道将数据存储在mongo数据库中的最有效方法。

我在流星上工作。 所以我必须创建一个模板事件:

Template.hello.events({
'submit form': function(e) {
e.preventDefault();

现在,我需要将所有结果都存储到数据库中。 其中kitchens是应添加到Checkbox集合的变量。

var kitchens = {
 fastfood: $(e.target).find('[name=fastfood]').val(),
 sushi: $(e.target).find('[name=sushi]').val(),
 italian: $(e.target).find('[name=italian]').val(),
};

kitchens._id = Checkbox.insert(kitchens);
console.log("added to database");

这段代码会将数据发送到数据库并创建一个ID,但我看不到该复选框是否已选中。 我发现以下代码将支票转换为“是”或“否”,但我不知道如何将其集成到我的代码中:

function kitchensChecked(id) {
var X = document.getElementById(id);
if (X.checked == true) {
 X.value = "YES";
} else {
X.value = "NO";
};

您是否可以帮助我集成此代码,或者向我展示将复选框结果保存到Checkbox集合的更流畅的方法?

这就是我处理应用程序中复选框的方式。 我将删除id字段,但在复选框上有一个value字段:

<input name="kitchen[]" type="checkbox" class="kitchen" value="italian">
<input name="kitchen[]" type="checkbox" class="kitchen" value="sushi">
<input name="kitchen[]" type="checkbox" class="kitchen" value="fastfood">

然后使用包轻松检索已选中的项目:

var formObject = $('form.main').serializeJSON();
var checkedItems = formObject.kitchen; // an array containing the checked values

有一个叫做:checked css选择器,它过滤选择并仅返回选中的输入。

var kitchens = {
 fastfood: $(e.target).find('#fastfood:checked').val(),
 sushi: $(e.target).find('#sushi:checked').val(),
 italian: $(e.target).find('#italian:checked').val()
};
  相关解决方案