Javascript 如何使“地位”;主动的;或;“过期”;在数据表中的列中?
我使用的是Laravel5,我有一个数据表,如下图所示。在状态列中,我想确定如果日期大于当前日期,则状态为“过期”。如果日期小于或等于当前日期,则状态为“活动”。否则状态为“停用”。你知道怎么做吗 下面是我的datatables javascript:Javascript 如何使“地位”;主动的;或;“过期”;在数据表中的列中?,javascript,mysql,datatable,laravel-5,datatables,Javascript,Mysql,Datatable,Laravel 5,Datatables,我使用的是Laravel5,我有一个数据表,如下图所示。在状态列中,我想确定如果日期大于当前日期,则状态为“过期”。如果日期小于或等于当前日期,则状态为“活动”。否则状态为“停用”。你知道怎么做吗 下面是我的datatables javascript: $(文档).ready(函数(){ var oTable=$('#surat')。数据表({ 处理:对, 服务器端:是的, 阿贾克斯:{ url:“{!!路由(“数据集”)!!}”, 数据:功能(d){ d、 jenis_surat=$('in
$(文档).ready(函数(){
var oTable=$('#surat')。数据表({
处理:对,
服务器端:是的,
阿贾克斯:{
url:“{!!路由(“数据集”)!!}”,
数据:功能(d){
d、 jenis_surat=$('input[name=jenis_surat]')。val();
d、 nomor_surat=$('input[name=nomor_surat]')。val();
d、 perihal=$('input[name=perihal]')。val();
}
},
栏目:[
{数据:'否',名称:'否'},
{数据:'jenis_surat',名称:'jenis_surat'},
{数据:'nomor_surat',名称:'nomor_surat'},
{数据:'perihal',名称:'perihal'},
{data:'date_to',name:'date_to'},
{数据:'状态',名称:'状态',
mRender:功能(数据、类型、完整){
如果(strotime($request['date\u to'])strotime(date(“Y-m-d”)){
返回“过期”;
}
否则{
返回'Deactive';
}
}
},
{数据:'action',名称:'action'}
]
});
$('search_form')。关于('submit',函数(e){
重载();
e、 预防默认值();
});
});
查看datatables初始化中的。datatables文档中的示例代码:
$(document).ready(function() {
$('#example').DataTable( {
"columnDefs": [
{
// The `data` parameter refers to the data for the cell (defined by the
// `data` option, which defaults to the column being worked with, in
// this case `data: 0`.
"render": function ( data, type, row ) {
return data +' ('+ row[3]+')';
},
"targets": 0
},
{ "visible": false, "targets": [ 3 ] }
]
} );
} );
这将使用第一列中提供的数据和第三列中提供的数据生成第一列。您可以以类似的方式使用它将数据从一列比较到另一列,然后定义要呈现的字符串
以下是您如何在数据中使用它的大致想法:
columns: [
{data: 'no', name: 'no'},
{data: 'jenis_surat', name: 'jenis_surat'},
{data: 'nomor_surat', name: 'nomor_surat'},
{data: 'perihal', name: 'perihal'},
{data: 'date_to', name: 'date_to'},
{data: 'status', name: 'status'},
]
columnDefs: [
{
"render": function(data, type, row) {
if (strtotime(row.date_to) < strtotime(date("Y-m-d"))) {
return '<span class="label label-default">Active</span>';
}
else if (strtotime(row.date_to) > strtotime(date("Y-m-d"))) {
return '<span class="label label-default">Expired</span>';
}
else {
return '<span class="label label-default">Deactive</span>';
}
}, "targets": [5]
}
]
列:[
{数据:'否',名称:'否'},
{数据:'jenis_surat',名称:'jenis_surat'},
{数据:'nomor_surat',名称:'nomor_surat'},
{数据:'perihal',名称:'perihal'},
{data:'date_to',name:'date_to'},
{数据:'status',名称:'status'},
]
columnDefs:[
{
“渲染”:函数(数据、类型、行){
if(标准时间(行日期)<标准时间(日期(“Y-m-d”)){
返回“活动”;
}
否则如果(STROTIME(行日期)>STROTIME(日期(“Y-m-d”)){
返回“过期”;
}
否则{
返回'Deactive';
}
},“目标”:[5]
}
]
我已经尝试过了,但我得到了未捕获的SyntaxError:columnsdfs中的意外标识符。row.date_to,是否读取了行日期中的数据?您知道如果数据表中没有显示日期,该如何显示吗?假设它在数据库中。您的输入数据是什么样子的?即使date_to列被隐藏,使用该列也不重要。row.date\u to应该从date\u到column读取数据,现在我意识到我的代码在这两种情况下都将row.date\u放到了。我的错误-其中一个应该是当前日期。我将编辑我的代码,代码也有一个输入错误:它是“columnDefs”,而不是“columnsDefs”。JavaScript中没有strotime
和date
函数。这是一段PHP代码,需要在JavaScript中重新实现。
columns: [
{data: 'no', name: 'no'},
{data: 'jenis_surat', name: 'jenis_surat'},
{data: 'nomor_surat', name: 'nomor_surat'},
{data: 'perihal', name: 'perihal'},
{data: 'date_to', name: 'date_to'},
{data: 'status', name: 'status'},
]
columnDefs: [
{
"render": function(data, type, row) {
if (strtotime(row.date_to) < strtotime(date("Y-m-d"))) {
return '<span class="label label-default">Active</span>';
}
else if (strtotime(row.date_to) > strtotime(date("Y-m-d"))) {
return '<span class="label label-default">Expired</span>';
}
else {
return '<span class="label label-default">Deactive</span>';
}
}, "targets": [5]
}
]