【问题标题】:Jquery Datatables and Jeditable - Data is not displayingJquery Datatables 和 Jeditable - 数据不显示
【发布时间】:2015-06-13 09:08:58
【问题描述】:

我正在使用 Jquery DataTables 和 jEditable。我有一个正确的 JSON 响应如下:

[{"country_id":"18","country":"Aruba","country_enabled":"1"},{"country_id":"19","country":"Afghanistan","country_enabled":null},{"country_id":"22","country":"Angola","country_enabled":"1"},{"country_id":"23","country":"Anguilla","country_enabled":null},{"country_id":"24","country":"\u00c5land Islands","country_enabled":null},{"country_id":"25","country":"Albania","country_enabled":null},{"country_id":"26","country":"Andorra","country_enabled":null},{"country_id":"27","country":"United Arab Emirates","country_enabled":null},{"country_id":"29","country":"Argentina","country_enabled":null},{"country_id":"30","country":"Armenia","country_enabled":null},{"country_id":"31","country":"American Samoa","country_enabled":null},{"country_id":"32","country":"Antarctica","country_enabled":null},{"country_id":"33","country":"French Southern Territories","country_enabled":null},{"country_id":"34","country":"Antigua and Barbuda","country_enabled":null},{"country_id":"35","country":"Australia","country_enabled":null},{"country_id":"36","country":"Austria","country_enabled":null},{"country_id":"37","country":"Azerbaijan","country_enabled":null},{"country_id":"38","country":"Burundi","country_enabled":null},{"country_id":"39","country":"Belgium","country_enabled":null},{"country_id":"40","country":"Benin","country_enabled":null},{"country_id":"41","country":"Bonaire, Sint Eustatius and Saba","country_enabled":null},{"country_id":"42","country":"Burkina Faso","country_enabled":null},{"country_id":"43","country":"Bangladesh","country_enabled":null},{"country_id":"44","country":"Bulgaria","country_enabled":null},{"country_id":"45","country":"zoo","country_enabled":null},{"country_id":"46","country":"Xylaphone","country_enabled":null}]

以上内容来自 Chrome 的开发者工具和 XHR 窗口,因此,我知道响应看起来正确并且正在接收数据。

这是我用来显示数据的 HTML:

<div class="content">
<div id="pad-wrapper" class="form-page">
    <div class="row">
        <div class="col-md-12">
            <h2>List of Countries</h2>
        </div>
        <div class="bs-example">
            </br>
            <form>
<div align = "left">
                <button type="button" class="btn btn-success" onclick="window.location='<?php echo site_url("admin/country_add");?>'">
                    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add Country
                </button>
                <button type="button" class="btn btn-danger" onclick="window.location='<?php echo site_url("admin/country_delete");?>'">
                    <span class="glyphicon glyphicon-minus" aria-hidden="true"></span> Delete Countries
                </button>
            </div>

            <!-- start table listing -->
     <table id="myDataTable">
    <thead>
        <tr>
            <th>country_id</th>
            <th>country</th>
            <th>country_enabled</th>
    </thead>

    <tbody>         
    </tbody>

</table>
<button id="btnAddNewRow">Add</button>
<button id="btnDeleteRow">Delete</button>
        </div>
    </div>
</div>

数据表出现在视图中,但只是说“正在加载...”并且从未显示任何数据。

我已将列标题重命名为与我的数据库相同,但它仍然不显示数据。

控制台报错如下:

【问题讨论】:

标签: php jquery datatables jeditable


【解决方案1】:

在通过Ajax提供的客户端处理模式下,数据应该有如下结构,更多细节见ajax选项。

{
    "data": [
        // row 1 data source,
        // row 2 data source,
        // etc
    ]
}

解决方案是将您的 JSON 数据更正为:

{ 
    "data": [
        {"country_id":"18","country":"Aruba","country_enabled":"1"}
    ]
}

另一种解决方案是将ajax.dataSrc 设置为空字符串以指示您返回的是普通数组,请参见下面的示例代码:

$('#example').dataTable({
  "ajax": {
    "url": "data.json",
    "dataSrc": ""
  }
});

【讨论】:

  • 确实,上述解决方案有效。我很好奇为什么数据有效,当我使用 aaData 时它不起作用。非常感谢您提供上述解决方案!
  • @user3264461, aaData 是旧版 DataTables 1.9 的属性名称。但是,DataTables 1.10 是向后兼容的,aaData 应该可以工作,请参阅ajax.dataSrc
  • 我再次尝试使用 aaData 并且它有效。这是我的代码;函数 get_countries(){ $results = array(); $results['aaData'] = $this->db->select('country_id, country, country_enabled ') ->from('mhcountry') ->get() ->result();返回$结果; }
猜你喜欢
  • 2019-10-04
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
相关资源
最近更新 更多