gpt4 book ai didi

php - 未捕获的类型错误 : Cannot read property 'length' of undefined when trying to populate responsive datatable using PHP?

转载 作者:搜寻专家 更新时间:2023-10-31 20:37:40 26 4
gpt4 key购买 nike

我正在尝试使用对 PHP 脚本的 AJAX 请求填充响应式数据表,响应以 JSON_encode 格式返回,我可以在 XHR 请求中看到响应:

["abc","def","ght","jkl"]

这是我使用的代码:

<table class="table table-striped table-bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Name</th>
</tr>
</tfoot>
</table>
$('#dataTables-example').DataTable({
responsive: true,
"ajax": "search_autocomplete.php",
});

这是 PHP 脚本:

if ($result->num_rows >0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$list[] =$row['name'];
}
echo json_encode( $list );
}

最佳答案

当您想插入数组数据源时,即不是对象字面量,源必须是数组的数组:

[["abc"],["def"],["ght"],["jkl"]]
$('#dataTables-example').DataTable({
"ajax": {
url: "search_autocomplete.php",
dataSrc: ''
}
});
if ($result->num_rows >0) {
while($row = $result->fetch_assoc()) {
$list[] = array($row['name']); //<----
}
echo json_encode($list);
}

如果您使用 Jonathan 的建议,情况也是如此,json_encode( array(data => $list)) - 您仍然需要将每个项目包装到一个数组中,否则您会得到 a, d, g 等因为dataTables访问每个字符串作为它期望的数组,每个字符被视为一个数组项,一列的数据.

if ($result->num_rows >0) {
while($row = $result->fetch_assoc()) {
$list[] = array($row['name']); //<----
}
echo json_encode(array('data' => $list));
}
$('#dataTables-example').DataTable({
"ajax": "search_autocomplete.php"
});

关于php - 未捕获的类型错误 : Cannot read property 'length' of undefined when trying to populate responsive datatable using PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31097501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com