首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel & Datatables: Ajax数据,而不是从html选择的新ajax参数刷新表

Laravel & Datatables: Ajax数据,而不是从html选择的新ajax参数刷新表
EN

Stack Overflow用户
提问于 2017-01-14 02:31:51
回答 3查看 2.5K关注 0票数 2

你能帮帮我吗。我正在用laravel开发一个后端应用程序,在这里我使用数据表。情况是,我正在从mailgun检索邮件列表,并希望返回邮件列表中的用户。我正在使用Laravel刀片中的html选择标记,并希望通过将邮件列表作为参数发送到ajax请求来刷新数据表,但是什么都没有发生。我回答了这个问题

https://datatables.net/forums/discussion/30286/ajax-reload-is-not-sending-updated-params

下面是我的代码

LARAVEL刀片:

代码语言:javascript
复制
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>

数据表:

代码语言:javascript
复制
// 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" }
                                ]
                            });

是否知道为什么数据表没有使用正确的数据刷新。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-20 07:32:05

感谢Sebastianb和fallen.lu的回答。当select选项发生更改时,我发现了为什么数据没有加载。而不是把它放在变更事件之外。我应该把它放在里面,我得到了正确的数据,为邮件列表。

代码语言:javascript
复制
$('#mailing-list').change(function(){
                             mailingListName = document.getElementById("mailing-list").value;
                             table.ajax.reload();
                        });
票数 1
EN

Stack Overflow用户

发布于 2017-01-19 18:24:59

尝试将ajax对象中的data函数更改为如下所示:

代码语言:javascript
复制
"ajax": {
    url: 'lists/data',
    data: function ( d ) {
            d.mail = mailingListName;
        }
    }
}

(查看DataTable网站上的示例 )

不过,我不知道服务器在“邮件”上期望的是什么类型的数据。此外,请记住,数据存储以GET请求的形式发送数据。

票数 2
EN

Stack Overflow用户

发布于 2017-01-14 03:15:52

代码语言:javascript
复制
$('#table').dataTable().fnDestroy();
$('#table').dataTable( {
            "bDestory": true,
            bRetrieve: true});

bRetrieve:检索现有的DataTables实例 bDestory:销毁任何与选择器匹配的现有表,并用新选项替换。

但是在datatable文档中,它变成了"destroy": true, "retrieve": true,尝试一下.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41646228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档