你能帮帮我吗。我正在用laravel开发一个后端应用程序,在这里我使用数据表。情况是,我正在从mailgun检索邮件列表,并希望返回邮件列表中的用户。我正在使用Laravel刀片中的html选择标记,并希望通过将邮件列表作为参数发送到ajax请求来刷新数据表,但是什么都没有发生。我回答了这个问题
https://datatables.net/forums/discussion/30286/ajax-reload-is-not-sending-updated-params
下面是我的代码
LARAVEL刀片:
Mailing List: <select id="mailing-list">
@foreach($lists as $list)
@if($list->address == 'users@sample.com')
<option selected="selected" value="{{$list->address}}">{{$list->address}}</option>
@else
<option value="{{$list->address}}">{{$list->address}}</option>
@endif
@endforeach
</select>数据表:
// get variable for mailing list
mailingListName = document.getElementById("mailing-list").value;
$('#mailing-list').change(function(){
table.ajax.reload();
});
// data table
var table = $('.data_Tables_wrapper').DataTable({
"bPaginate": true,
"bJQueryUI": true,
"iDisplayLength": 50,
"sPaginationType": "full_numbers",
"ajax": {
url: 'lists/data',
data: function ( d ) {
return JSON.stringify( d.mail = mailingListName );
}
},
"order": [ 2 ],
"columns": [
{ data:"email", name: "email" },
{ data:"name", name: "name" },
{ data:"subscribed", name: "subscribed" }
]
});是否知道为什么数据表没有使用正确的数据刷新。
发布于 2017-01-20 07:32:05
感谢Sebastianb和fallen.lu的回答。当select选项发生更改时,我发现了为什么数据没有加载。而不是把它放在变更事件之外。我应该把它放在里面,我得到了正确的数据,为邮件列表。
$('#mailing-list').change(function(){
mailingListName = document.getElementById("mailing-list").value;
table.ajax.reload();
});发布于 2017-01-19 18:24:59
尝试将ajax对象中的data函数更改为如下所示:
"ajax": {
url: 'lists/data',
data: function ( d ) {
d.mail = mailingListName;
}
}
}(查看DataTable网站上的示例 )
不过,我不知道服务器在“邮件”上期望的是什么类型的数据。此外,请记住,数据存储以GET请求的形式发送数据。
发布于 2017-01-14 03:15:52
$('#table').dataTable().fnDestroy();
$('#table').dataTable( {
"bDestory": true,
bRetrieve: true});bRetrieve:检索现有的DataTables实例 bDestory:销毁任何与选择器匹配的现有表,并用新选项替换。
但是在datatable文档中,它变成了"destroy": true, "retrieve": true,尝试一下.
https://stackoverflow.com/questions/41646228
复制相似问题