当通过模式时,我在laravel datatable插件中使用ajax在表中添加数据。 1)。当我输入数据时,它会附加在表上,但与此同时,直到我刷新数据,它才会在datable中显示任何数据
2)。第二次,当我第二次输入数据时,它多次附加在表上
我尝试过重置模式,以检查是否是由于模式内部的数据所致,但是仍然通过应用模式隐藏和表单重置,但是仍然在第二次输入中多次输入了数据
$('#myModal').on('hidden.bs.modal', function () {
$(this).find('form').trigger('reset');
$('#myModal').data('modal', null);
$(this).removeData();
}
$('#submitDoc').click(function(){
$('.doc-form').on('submit', function(e){
var self = this;
e.preventDefault();
e.stopPropagation();
var no= {{ $no }};
token =$('input[name=_token]').val();
name = $('input[name=name]').val();
start_date = $('input[name=start_date]').val();
end_date = $('input[name=end_date]').val();
amount = $('input[name=amount]').val();
image =$('input[name=select_file]').val();
$.ajax({
type: 'POST',
url : '{{ URL("addDoc") }}',
contentType: false,
processData: false,
data: new FormData(this)
}).done(function(data){
$('.docTable').append(
"<tr>"+"<td class='text-center'>" + no++ + "</td>" +
"<td class='text-center'>" + data.id+ "</td>"+
"<td class='text-left'>" +data.name+ "</td>"+
"<td class='text-center'>" +start_date +
"</td>"+"<td class='text-center'>" +end_date+ "</td>"+
"<td class='text-right'>" +'$'+ data.amount +
"</td>"+"<td class='text-center'>" +
"<i class='fa fa-camera'></i> "+ "</td>"+"</tr>");
});
我想将表格中的数据追加到表单提交中而不完美地刷新它,这意味着一次输入不会多次,并且当我在数据表中提交记录时,它也会增加页面过滤器中的记录条目
答案 0 :(得分:0)
我已经解决了我的第一个问题,即当我将数据附加到表中时,记录计数器不会增加。在表中添加行的正确方法是
t.row.add( [ count++ ,
id + ,
data.name,
start_date+ ,
end_date,
data.amount,
] ).draw( false );
并在数据表中添加CSS,我们可以这样:
var t = $(".docTable").DataTable({
'columnDefs': [
{
"targets": [0,1,3,4,6], // your case first column
"className": "text-center",
},
{
"targets": 2,
"className": "text-left",
},
{
"targets": 5,
"className": "text-right",
}
],
});