Datatable如何将数据从输入传递到控制器
Posted
技术标签:
【中文标题】Datatable如何将数据从输入传递到控制器【英文标题】:Datatable how to pass data from input to controller 【发布时间】: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()
哇。非常感谢
【参考方案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) 存储在输入变量中是什么意思?以上是关于Datatable如何将数据从输入传递到控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何将数组数据从 vuejs 传递到 laravel api 控制器