簡體   English   中英

ajax中的Laravel刀片狀態

[英]Laravel blade condition in ajax

我的數據通過ajax返回到刀片表中,但我需要在返回的數據中使用過濾器。

例子

如果我使用刀片循環,我可以使用@if ($loop->last)來對我的最后一條記錄進行特殊更改,但是由於我的數據是由 ajax (JSON)返回的,我不知道該怎么做。

代碼

評論了我需要過濾器的部分

$.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);
    });
}
});

任何的想法?

更新

這是我的刀片的屏幕截圖,我從表 1 中選擇了 1 行,數據顯示在表 2 中

現在在我標記的表 2 中,我只想顯示編輯和刪除按鈕的最新行其他 3 行空<td>

一

您可以為 ajax 使用局部視圖。 例如,當您在后端發送 ajax 請求時,您將在后端使用部分刀片文件,您可以在刀片文件中使用 if 語句,您將返回 Html 作為響應,然后將該 Html 附加到 DOM 上成功。

$html = view('partial-blade',['data'=> $data])->render();

返回 $html;

您必須創建一個視圖並在那里設置所有 html 代碼。 調用 Ajax 和渲染視圖后

$view = view('blade',["data"=>$data,])->render();
    return $view;

解決了

好吧,我設法按照我想要的方式做這件事,感謝評論,但不幸的是我的問題不在控制器中,我無法說服朋友我需要的是處理我的 ajax 數據成功而不是控制器。

無論如何,這是我的解決方案,非常適合我:

$(data.data).each(function(_, i){
  //.....
  var ms = _ == data.data.length -1; //get latest row
  if(ms == true){ // if is latest row
     // show my tr's with action buttons
     var row = `<tr data-id="${i.id}">'+
     //....
  } else {
     // show mt tr's without buttons
     var row = `<tr data-id="${i.id}">'+
     //....
  }
});

二

感謝所有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM