我想在不刷新页面的情况下呈现一个视图,所以我使用Ajax来呈现视图。看起来我的$scores不起作用,它应该是一个数组吗?我读过一些关于它应该是json数据的文章?
控制器:
$scores = DB::table('scores')->select('teamname', 'score')->get();
$table_view = view('score_table.blade.php', ['scores'=>$scores])->render();
return response()->json(['succes' => true, 'table_view' => $table_view]);
查看score_表格. blade. php
<table>
<tr>
<th> Teamname </th>
<th> Score </th>
</tr>
@foreach($scores as $score)
<tr>
<td> {{ $score->teamname }} </td>
<td> {{ $score->score }} </td>
</tr>
@endforeach
</table>
Ajax函数
success:function(data){
$('#scoreresult').html(data.table_view);
}
我很肯定它会工作,但它没有:(谁能帮我解决这个问题?非常感谢!
2条答案
按热度按时间abithluo1#
你的逻辑很好,但需要做一些修改。
你不需要传递blade文件的全名,可以使用compact。
控制器:
同时确认你是否在ajax请求中发送json类型的内容。
58wvjzkj2#
我也有同样的要求,但当我尝试做以下事情时遇到了一些问题:
我遇到的问题是页面使用Axios库在每次 AJAX 请求时刷新自己,如下所示:
我通过在请求标题上附加
application/json
解决了这个问题,如下所示: