我的数据通过 ajax 返回到 Blade 中的表中,但我需要在返回的数据中使用过滤器。
示例
如果我使用 Blade 环,我可以使用@if ($loop->last)
为了对我的最后一条记录进行特殊更改,但由于我的数据是通过ajax返回的 (JSON)
我不知道该怎么做。
代码
Commented the part i need filter
$.ajax({
type:'GET',
url:'{{url('dashboard/getProjectReimburses')}}/'+projectID,
success:function(data){
$(data.data).each(function(_, i){
var number = i['amount'];
var nf = new Intl.NumberFormat('en-US', {
maximumFractionDigits:0,
minimumFractionDigits:0
});
var formattedNumber = nf.format(number);
var row = `<tr data-id="${i.id}">'+
'<td>${i.created_at}</td>'+
'<td>${i.spent_date}</td>'+
'<td>${i.cost_name}</td>'+
'<td class="text-right">${nf.format(number)}</td>'+
'<td>${i.description}</td>'+
'<td>Attachments here</td>'+
'<td>${i.statusName}</td>'+
@role('employee|admin')
'<td>${i.statusDate}</td>'+
'<td>
// I need show this delete button only for latest row, for other rows just empty <td></td> //
<Form method="DELETE" id="organizationFormDel">
@csrf
@method('DELETE')
<button type="submit" data-id="${i.id}" class="btn btn-sm reimDelete btn-danger">Delete</button>
</form>
// I need show this delete button only for latest row, for other rows just empty <td></td> //
</td>'+
'</tr>`;
@else
'<td>status date here</td></tr>`;
@endrole
$('#visit_table2').append(row);
});
}
});
有什么想法吗?
更新
这是我的 Blade 的屏幕截图,我从表 1 中选择 1 行,数据显示在表 2 中
现在在表 2 中,正如我标记的那样,我想仅为最新行显示编辑和删除按钮,其他 3 行为空 <td>
最佳答案
您可以使用 ajax 的部分 View 。例如,当您在后端发送 ajax 请求时,您将在后端使用部分 Blade 文件,您可以在 Blade 文件中使用 if 语句,您将返回 Html 作为响应,然后将该 Html 附加到 DOM成功。
$html = view('partial-blade',['data'=> $data])->render();
返回$html;
关于javascript - ajax 中的 Laravel Blade 状况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59527320/