【问题标题】:Datatable how to pass data from input to controllerDatatable如何将数据从输入传递到控制器
【发布时间】:2018-06-10 17:56:44
【问题描述】:

在数据表中,我为每一行输入一个输入,我想在这个输入中添加一些文本,对于每个输入,我想获取文本并将其保存到数据库中 我正在使用 laravel 并想使用 ajax 现在它只对第一个输入工作正常,但对于第二个我写的任何内容都将采用第一个输入文本

输入栏:

{data: 'vendor_id',mRender: function (data, type, row) {                   
    return '<label hidden>'+data+'</label> <input type="text" id="vendor_name" class="vendor_name" data-id="'+row.id+'" onClick="this.select();" value="'+data+'">';}
},

{data: 'vendor_no', mRender: function (data, type, row) {                   
    return '<label hidden>'+data+'</label> <input type="text" id="vendor_no" class="vendor_no"  onClick="this.select();" value="'+data+'">';}
},

ajax 向控制器发送变量

<script type="text/javascript">
    $(document).on('blur focusout', "#vendor_name", function(){
        var id = $(this).data("id");
        $.ajax({
            type: 'POST',
            url: 'Vendor_Save',
            data: {
                '_token': $('input[name=_token]').val(),
                'currentid': id,
                'current_vendor_name':$('#vendor_name').val(),
              },
            success: function(data) {
                console.log(data);
            }
        });
    });
</script>

【问题讨论】:

  • 您不能在一个页面中重复 ID...根据定义它们是唯一的。改用类
  • 同样的问题请帮帮我
  • 修复类后...您需要当前实例值...'current_vendor_name':$(this).val()
  • 哇。非常感谢

标签: php jquery ajax laravel datatable


【解决方案1】:

由于 ID 必须是唯一的...改用类,您需要事件发生的类实例的值。

$(document).on('blur focusout', ".vendor_name", function(){
                                // ^^ class selector
    var id = $(this).data("id");
    $.ajax({
        type: 'POST',
        url: 'Vendor_Save',
        data: {
            '_token': $('input[name=_token]').val(),
            'currentid': id,
            'current_vendor_name':$(this).val(),// `this` is current instance
          },
        success: function(data) {
            console.log(data);
        }
    });
});

【讨论】:

  • 但是如果我想在不同输入字段的事件模糊上填充同一行中的输入字段怎么办?
  • 存储var $input =$(this)并在回调中$input.closest('tr').find('.someOtherInputClass').val(someVarFromResponse)
  • 实际上我想在其他字段中显示不同的数据有 .vendor_no 类,这将是成功的:function(data) {}
  • 好吧,您以相同的方式遍历行并以相同的方式使用 find() 然后执行您需要的任何方法
  • 非常感谢您,很抱歉打扰您,但是将 $(this) 存储在输入变量中是什么意思?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 1970-01-01
相关资源
最近更新 更多