动态复选框不会保存到数据库

报告

我正在尝试根据四惠勒的品牌、型号和车身类型的过滤来保存产品。

我在将产品详细信息保存到数据库/也无法获取选定的 products_ids 时遇到问题。

产品显示在结果 div 中,这是通过 javascript 动态生成的。

前任:checkOptions += '<div class="col-xs-12 col-sm-12 col-md-4">' +'<label>' + '<input type="checkbox" id="service_product_ids" name="service[product_ids][]" value='+ result[i].id + '>' + result[i].name + '</label>' + '</label>' +'</label>' + '</div>';

但是当我点击提交按钮时,产品 ID 没有被保存/传递给控制器​​。

 def service_params
  params.require(:service).permit(:name, :cost, :description, :hours, :body_type, :tax_id, :operation_category_id, products_attributes: [:id, :name, :description, :brand, :cost, :product_color, :selling_price, :tax_id, :_destroy],service_varients_attributes: [ :body_type, :make, :model, :cost, :id, :_destroy], service_product_ids: [], product_ids: [])
end

控制器创建和新动作

    def new
  if (params[:make_id].present? && !params[:body_type].present?)
    make = Make.find(params[:make_id])
    @model_name = make.models 
    render json: @model_name
  elsif params[:body_type].present?
    @products = Product.includes(:product_varients).where(product_varients: { body_type: params[:body_type], make: params[:make_id], model: params[:model_id] })
    puts "----products count----------"
    puts @products.count
    puts "--------------"
    render json: @products
    @service = Service.new
    @service.products.build
    @service.service_varients.build
  else
  @service = Service.new
  @service.products.build
  @service.service_varients.build
  end   
end 

def create
  @service = Service.new(service_params)
  respond_to do |format|
    if @service.save
      format.html { redirect_to @service, notice: 'Service was successfully created.' }
      format.json { render :show, status: :created, location: @service }
    else
      format.html { render :new }
      format.json { render json: @service.errors, status: :unprocessable_entity }
    end
  end   
end

模型关系:

 Product belongs_to services
 services has_many products.

阿贾克斯:

 $('#service_service_varients_attributes_0_body_type' ).change(function(){
        var make = $('#service_service_varients_attributes_0_make').val();

        var checkOptions = '', objectlength, result = {};
        var model = $('#categoriesDiv').val();
        var body_type = $('#service_service_varients_attributes_0_body_type').val();
        if ("#service_service_varients_attributes_0_make" != null ){
        jQuery.ajax({
            url: "<%= new_service_path %>",
            type: "GET",
            data:'make_id='+ make+'&model_id='+ model+'&body_type='+ body_type,
            dataType: "html",
            success: function (data) {
          result = JSON.parse(data)
          console.log(result);
          objectlength = result.length;
          for (var i = 0; i < objectlength; i++) {
             checkOptions += '<div class="col-xs-12 col-sm-12 col-md-4">' +'<label>' + '<input type="checkbox"  id="service_product_ids" name="service[product_ids][]" value='+ result[i].id + '>' + result[i].name + '</label>' + '</label>' +'</label>' + '</div>';
           }
                  $("#result").append(checkOptions);

        }
        });
      } else {
      jQuery('#result').html('Please Select');
      }
      });

    <div class="panel-body">   
       <div class="row" id="result" >
         
       </div>
    </div>

在此处输入图片说明

服务器日志 在此处输入图片说明

当我按 ctrl+ui 时得到这样的结果 div。在表单代码中显示的复选框没有显示在这里,但是当我检查 elemrnt 时,我可以看到附加的输入复选框 div。不知道这里发生了什么

1 请帮助。任何帮助将是可观的。

邪恶的

我认为我对您的评论应该已经解决了您的问题,因为它对我很有效。
我做了一个和你的有点像的演示:

索引.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>

<body>
    <form method="post" action="">
        <div class="panel-body">
            <div class="row" id="result">
            </div>
        </div>
        <input type="submit" name="" value="Submit">
    </form>
    <script type="text/javascript">
    $(function() {
        $.ajax({
            url: "data.json",
            type: "GET",
            success: function(result) {
                var objectlength = result.length;
                var checkOptions = '';
                for (var i = 0; i < objectlength; i++) {
                    checkOptions += `
                        <div class="col-xs-12 col-sm-12 col-md-4">
                            <label><input type="checkbox"  class="service_product_ids" name="service[product_ids][]" value="${result[i].id}">${result[i].name}</label>
                        </div>
                    `;
                }
                $("#result").append(checkOptions);
            }
        });
        $('form').submit(function(e) {
            e.preventDefault();
            console.log($('form').serialize());
        });
    });
    </script>
</body>
</html>

数据.json

[
    {"id": 1, "name": "Patience Wicox"},
    {"id": 2, "name": "Hayley Carver"}
]

我检查了复选框,然后单击提交按钮,并且$('form').serialize()确实有效。在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

保存多个复选框值并使用Laravel保存到数据库

来自分类Dev

如何将复选框数组中的数据保存到数据库中

来自分类Dev

如何使用按钮将数据从复选框值保存到数据库

来自分类Dev

在PHP中将多个复选框保存到数据库

来自分类Dev

如何在Rails 6中将多个复选框保存到数据库

来自分类Dev

将复选框值保存到codeiniter中的数据库中

来自分类Dev

使用Laravel 5.1将复选框数组保存到数据库

来自分类Dev

如何将多个选定的复选框值保存到数据库 mvc

来自分类Dev

PHP - 循环复选框并将其保存到数据库

来自分类Dev

如何根据我的代码将复选框数据保存到数据库中,知道吗?

来自分类Dev

Django-将复选框输入保存到数据库和更新页面

来自分类Dev

Rails:仅在选中复选框的情况下,在保存到数据库之前确认弹出窗口

来自分类Dev

使用javascript将表单中签入的结果复选框保存到sqlite数据库中

来自分类Dev

从复选框更新数据库

来自分类Dev

从角度形式复选框保存布尔值真/假并将其保存到像 Oracle 这样的后端数据库的正确方法是什么?

来自分类Dev

如何获取选中和未选中复选框数组的所有值并将其保存到PHP中的数据库

来自分类Dev

将复选框数据保存在数据库列中

来自分类Dev

将复选框数据保存在数据库列中

来自分类Dev

yii2复选框字段不在数据库中保存数据

来自分类Dev

PHP - 复选框不会内爆并在数据库中更新

来自分类Dev

CakePHP不会保存到数据库

来自分类Dev

动态SQL-从数据库检索两个复选框值

来自分类Dev

根据数据库记录动态生成复选框表单

来自分类Dev

使用JSP Spring MVC Hibernate从数据库动态创建复选框

来自分类Dev

如何使用jQuery Datatables插件从数据库动态绑定复选框值

来自分类Dev

在数据库中动态插入翻转复选框按钮值

来自分类Dev

javafx使用复选框从数据库填充动态tableview

来自分类Dev

(仍然未回答)Django复选框在数据库中保存是或否

来自分类Dev

需要根据数据库中保存的值检查复选框列表

Related 相关文章

  1. 1

    保存多个复选框值并使用Laravel保存到数据库

  2. 2

    如何将复选框数组中的数据保存到数据库中

  3. 3

    如何使用按钮将数据从复选框值保存到数据库

  4. 4

    在PHP中将多个复选框保存到数据库

  5. 5

    如何在Rails 6中将多个复选框保存到数据库

  6. 6

    将复选框值保存到codeiniter中的数据库中

  7. 7

    使用Laravel 5.1将复选框数组保存到数据库

  8. 8

    如何将多个选定的复选框值保存到数据库 mvc

  9. 9

    PHP - 循环复选框并将其保存到数据库

  10. 10

    如何根据我的代码将复选框数据保存到数据库中,知道吗?

  11. 11

    Django-将复选框输入保存到数据库和更新页面

  12. 12

    Rails:仅在选中复选框的情况下,在保存到数据库之前确认弹出窗口

  13. 13

    使用javascript将表单中签入的结果复选框保存到sqlite数据库中

  14. 14

    从复选框更新数据库

  15. 15

    从角度形式复选框保存布尔值真/假并将其保存到像 Oracle 这样的后端数据库的正确方法是什么?

  16. 16

    如何获取选中和未选中复选框数组的所有值并将其保存到PHP中的数据库

  17. 17

    将复选框数据保存在数据库列中

  18. 18

    将复选框数据保存在数据库列中

  19. 19

    yii2复选框字段不在数据库中保存数据

  20. 20

    PHP - 复选框不会内爆并在数据库中更新

  21. 21

    CakePHP不会保存到数据库

  22. 22

    动态SQL-从数据库检索两个复选框值

  23. 23

    根据数据库记录动态生成复选框表单

  24. 24

    使用JSP Spring MVC Hibernate从数据库动态创建复选框

  25. 25

    如何使用jQuery Datatables插件从数据库动态绑定复选框值

  26. 26

    在数据库中动态插入翻转复选框按钮值

  27. 27

    javafx使用复选框从数据库填充动态tableview

  28. 28

    (仍然未回答)Django复选框在数据库中保存是或否

  29. 29

    需要根据数据库中保存的值检查复选框列表

热门标签

归档