【发布时间】:2017-07-20 00:43:20
【问题描述】:
对于 JQuery 数据表,是否可以纯粹为了可读性将单个列拆分为多个部分?例如,我有一个 URL 数据库,分为域和路径。我想保持完整的路径,但为了便于阅读,我希望路径的每个部分都分成几列。例如:
DOMAIN | PATH
www.xxx| /p | /rty | |
www.zzz| /o | | |
www.yyy| /yu| /x | /t|
我曾尝试使用 render 将每个 URL 与空格分开,但这并不理想,因为所有内容都在同一列中,而且很碍眼。
EDIT 为了清楚起见,我真的很想将路径保留为一个数据条目。我知道这是一个奇怪的选择,但就我而言,这是更可取的选择。
EDIT 填写表格的代码
Javascript
<script>
$(function() {
$('#ut-table').DataTable({
processing: true,
serverSide: true,
ajax: '{!! url('/all') !!}',
columns: [
{ data: 'frequency'},
{ data: 'occurrences'},
{ data: 'protocol'},
{ data: 'domain'},
{ data: 'path', render: function(data, type, row){
var newchar = ' | ';
return data.split('/').join(newchar);
}
},
],
});
});
HTML
<table class="table table-bordered" id="ut-table">
<thead>
<tr>
<th>frequency</th>
<th>occurrences</th>
<th>protocol</th>
<th>domain</th>
<th>path</th>
</tr>
</thead>
</table>
Laravel Back End
public function all()
{
Debugbar::warning('query fired');
return Datatables::of(
Unknown_Tag::query()
->orderBy('frequency', 'desc')
->groupBy('urlTrimmed')
)->make(true);
}
编辑: 感谢 Louys 和他的回答一百万,但是我仍然有问题。我需要分开我的路径,而不是我的网址。 EX 我需要拆分这个: “/这个/是/我的/路径” 进入这个: 这是我的道路 我尝试了以下代码:
<script>
$(function() {
var table = $('#ut-table');
table.dataTable({
processing: true,
serverSide: true,
ajax: '{!! url('/all') !!}',
columns: [
{ data: 'domain'},
{ data: 'path', render: function(data, type, row){
var regexp = /^\/.*?(?=\/|$)/g;
var match = regexp.exec(data);
return match[0];
}
},
{ data: 'path', render: function(data, type, row){
var regexp = /^\/.*?(?=\/|$)/g;
var match = regexp.exec(data);
return match[1];
}
},
],
});
});
但是,由于对我的正则表达式的两次调用都在不同的范围内,因此只会返回我的第一个匹配项。知道如何在不必为每次迭代运行循环的情况下解决这个问题吗? 实际上,我刚刚想到了这个想法,无论如何我可以从我的 PHP 调用中编辑 JSON 以包含拆分路径吗?
【问题讨论】:
-
显示如何填充 Datatable 数据...
标签: jquery mysql datatables