gpt4 book ai didi

php - 数据表 - 以 HTML 元素形式返回列

转载 作者:行者123 更新时间:2023-12-01 08:42:57 25 4
gpt4 key购买 nike

我在将一些客户端数据表逻辑迁移到服务器端时遇到一些困难。

我当前的问题是,使用数据表,如果您想对大量数据(20,000 多行)进行分页,我首先需要加载 Controller 中的所有行,然后将它们传递到 View :

$records = \App\Records::get();

return view("example.datatables")->with(["records" => $records]);

接下来,需要大约 2 分钟的等待时间才能加载所有内容,并且 Datatables 将记录分页为 500 页:

$("#table").DataTable({
paging: true,
pageLength: 500,
...
});

我已更改数据表声明以通过 ajax 处理服务器端处理像这样:

$("#table").DataTable({
processing: true,
serverSide: true,
ajax: {
url: "...",
type: "GET"
}, paging: true,
pageLength: 500,
...
});

按照我的意愿让它工作进展得很好,但问题是数据表覆盖或忽略了我从 ajax 发回的内容。请求:

$columnData = [];
foreach($recordsFromDatabase AS $record){
$columnDataObject = [];

$columnDataObject[0] = '<td class="myClass" data-property="myProperty"><input type="text" name="customInput[]"/></td>'

...

$columnData[] = $columnDataObject;
}

return response()->json([
"draw" => (int)$request->input("draw"),
"recordsTotal" => $totalRecords,
"recordsFiltered" => $totalFilteredRecords,
"data" => $columnData,
"error" => null
]);

基本上,我发回的是 json响应包含 data ,这是一个列数组,分别是 <td>元素,而不仅仅是一个简单的值。所以<td>Value</td>Value .

Datatables 给人一种工作正常的错觉,但我最终得到了

<tr role="row" class="even">
<td class="sorting_1"><input type="text" name="customInput[]"/></td>
...
</tr>
<tr role="row" class="odd">
<td class="sorting_1"><input type="text" name="customInput[]"/></td>
...
</tr>

它呈现 <input> <td>里面正确,但是class="myClass" data-property="myProperty"丢失了,这破坏了我的表的扩展功能。

有什么方法可以告诉数据表我发回的内容是有效的 <td>元素,它需要做的就是添加 oddeven类(class)? (即使如此,我认为这只是为了造型)。

最佳答案

您错误地使用了 jQuery DataTables。

您不应该发送<td>元素作为您的数据。使用 columns.render 为您的手机和/或 columns.createdCell 生成内容的选项添加选项归因于 <td>元素。

例如:

$('#example').DataTable( {
"columnDefs": [ {
"targets": 3,
"createdCell": function (td, cellData, rowData, row, col) {
$(td)
.attr('data-property', rowData['myCustomProperty'])
.addClass(rowData['myClass']);
}
} ]
} );

对于 Laravel 使用优秀 Laravel DataTables包以在服务器端处理模式下正确显示表格。

关于php - 数据表 - 以 HTML <td> 元素形式返回列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45243855/

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