2016-12-29 86 views
2

工作我使用的数据表显示从mysql数据库列表阿贾克斯成功函数不是数据表

我需要更新表加载结束某些输入,然后我用成功的功能,但是这似乎防止数据渲染

var table = $('#example').DataTable({ 
'processing': true, 
'serverSide': true, 
'ajax': { 
    type: 'POST', 
    'url': url, 
    'data': function (d) { 
    console.log(d.order); 
    return JSON.stringify(d); 
    }, 

    // EDIT this "my" success function 
    success: function(data) { 
    $('#my_input').val(data.return); 
    } 
} 

的Json返回是:

{ 
"data":[[ (datatable value) ]], 
"returned":"myvalue" 
} 

这里的jsfiddle

编辑 http://jsfiddle.net/ntcwust8/95/

+0

只是删除成功回调 –

+0

什么是你的成功回调data.return。正如我可以看到有没有这样的领域在json从这个链接返回 http://www.json-generator.com/api/json/get/cbEfqLwFaq?indent=2 –

+0

我的json有一个data.returned ...或者无论如何,我需要更新表加载后的输入 – FireFoxII

回答

2

你只需要删除成功回调。

var table = $('#example').DataTable({ 
     'processing': true, 
     'serverSide': true, 
     'ajax': { 
      type: 'POST', 
      'url': url, 
      'data': function (d) { 
      console.log(d.order); 
      return JSON.stringify(d); 
      } 
     } 

编辑

你需要使用ajax.dataSrc财产AJAX完成后,它会调用。 它将在刷新工作,以及 https://datatables.net/reference/option/ajax.dataSrc

var table = $('#example').DataTable({ 
    'ajax': { 
     type: 'POST', 
     'url': url, 
     'data': function (d) { 
     console.log(d.order); 
     return JSON.stringify(d); 
     }, 
     "dataSrc": function (json) { 
     $("#mydata").val(json.recordsTotal); 
     return json.data; 
     } 
    }, 

    }); 

这里更新小提琴。 http://jsfiddle.net/2jkg3kqo/2/

+0

对不起,我的英语,但我需要更新输入值与从json返回的数据...查看我编辑成功功能 – FireFoxII

+0

@FireFoxII检查我更新的答案。它会为你工作。 –

+0

是的!谢谢!! – FireFoxII

1

只要删除success回调。

成功 - 不可重写,因为它在内部用于 DataTables。为了操纵/变换服务器 使用ajax.dataSrc(上图),或使用AJAX返回的数据作为函数

Datatable默认处理success回调,不要将其覆盖。

取而代之的是使用complete选项AJAX在数据加载后做些事情。

更新fiddle

+0

对不起,我的英语,但我需要更新输入值与从json返回的数据...查看我的编辑成功功能 – FireFoxII

+0

是的,你可以使用响应做任何你想。检查更新的提琴在这里 –

2

Datatable拥有自己的complete事件,这个事件称为initComplete

如果您重新定义success您正在重写Datatable自己的函数。

var table = $('#example').DataTable({ 
    'processing': true, 
    'serverSide': true, 
    'ajax': { 
    .... 
    .... 
    },  
    'initComplete':function(settings, json){ 
     alert($('#example tbody tr').length+ ' records on screen'); 
}); 

参考:https://datatables.net/reference/option/initComplete

更新FIDLE:http://jsfiddle.net/ntcwust8/94/

+0

对不起我的英文,但我需要更新每个重新加载的输入值与从json返回的数据...查看我的编辑成功函数 – FireFoxII

+0

@FireFoxII'initComplete'函数得到一个'json'变量是一个对象与数据从ajax调用。你可以像'json.data'那样访问它,这就是所有数据的一个数组。 – ojovirtual

+0

是的,但似乎不工作时,我调用table.ajax.reload(); – FireFoxII