部分重新渲染后可以重新启用X-Editable

时间:2017-06-30 12:29:52

标签: javascript php laravel x-editable

我在laravel刀片上有下表,它使用x-editable来更新它的一些字段(注意,这是我的第一个PHP项目,所以如果有更好的方法可以做到这一点,请分享):

    <table id="LinksTable" class="table table-bordered">
        <thead>
            <tr>
                <th>Display</th>
                <th>Link Display Name</th>
            </tr>
        </thead>
        <tbody>
        <?php $link_settings = Link_setting::whereNotNull('link_address')->get();?>
            @foreach($link_settings as $link_setting)
            <tr id="linkRow.{{$link_setting->id}}">
                <td hidden="true">{{$link_setting->id}}</td>
                <td><input id="linkD.{{$link_setting->id}}" name="is_displayed"
                    checked="{{$link_setting->is_displayed}}"
                    onChange="OnDisplayChange(this)" type="checkbox"></td>
                <td><a href="#" class="listEdit" data-type="text"
                    data-column="display_name" data-url="./link_settings/update"
                    data-pk="{{$link_setting->id}}" data-title="change"
                    data-name="display_name">{{$link_setting->display_name}}</a>
                </td>
            </tr>
            @endforeach
        </tbody>
    </table>

这在第一次渲染时很好,我可以编辑任何行上的显示名称,并正确更新数据库。 我的问题是我有一个“添加”按钮,可以在数据库中创建一个新对象。添加后,我需要重新加载表格以显示此条目。

function RefreshTable() {
    $('.listEdit').editable("destroy");
    $( "#linksTableMainDiv" ).load(location.href + " #LinksTable");
    $('.listEdit').editable();
}

该表重新呈现正常,但是x-editable中断,没有我可以找到的错误。

1 个答案:

答案 0 :(得分:0)

对于遇到这篇文章的人来说,我最后通过javascript重新加工,而不是重新加载表格。添加$(&#39; .listEdit&#39;)。editable(); table.appendChild(row)之后启用新行中的所有可编辑字段。为每个分配了data-pk = 0,并且作为更新控制器的一部分,返回了id。然后,我在可编辑函数成功时更新行的data-pk元素。