通过ajax将laravel查询结果传递给blade

通过ajax将laravel查询结果传递给blade,ajax,laravel,Ajax,Laravel,我想知道在成功后如何将laravel查询结果传递回ajax函数。我读过一些关于json编码的书,但是我有点困惑,因为我不太熟悉json AJAX 控制器 看法 @foreach($users作为$user) {{$user->department} {{$user->position} @如果($user->status==0) 活跃的 @elseif($user->status==1) 休假 @elseif($user->status==2) 已退休的 @否则 结束 @恩迪夫 @如果($us

我想知道在成功后如何将laravel查询结果传递回ajax函数。我读过一些关于json编码的书,但是我有点困惑,因为我不太熟悉json

AJAX 控制器 看法

@foreach($users作为$user)
{{$user->department}
{{$user->position}
@如果($user->status==0)
活跃的
@elseif($user->status==1)
休假
@elseif($user->status==2)
已退休的
@否则
结束
@恩迪夫
@如果($user->status==2 | |$user->status==3)
更新工资单
@否则
更新工资单
@恩迪夫
@endforeach
{{$users->links()}

第一次加载页面时(即在服务器上呈现页面)将使用Blade,只有在重新加载页面时,它才会再次运行,这与您尝试使用ajax所做的相反,即在不重新加载页面的情况下与服务器交互

在ajax成功调用中,您要做的是用javascript为表体的内容以及从服务器响应中获得的数据构造HTML


这个软件包已经为您完成了所有繁重的工作,当然,自己学习如何完成它会很好

您需要将
视图
返回到ajax,而不是从控制器返回集合
$users
,因此将控制器方法的返回更改为

return $users;


JSON与Javascript的符号几乎相同(毕竟它的名字意味着Javascript对象符号),控制器应该生成一个PHP对象,然后发送它。然后从JS开始,您只需将它作为一个对象来生成html。要生成HTML,我建议您使用模板引擎。像您这样放置HTML可能会很危险,因为它会使您暴露在
function filterUsers(Request $request) {
    $selected = $request->selected;
    if ($selected == 0) {
        $users = DB::table('users')->paginate(15);
    } elseif ($selected == 1){
        $users = DB::table('users')
                ->where('status', '=', '0')
                ->orWhere('status', '=', '1')
                ->paginate(15);
    } else {
        $users = DB::table('users')
                ->where('status', '=', '2')
                ->orWhere('status', '=', '3')
                ->paginate(15);
    }

    return $users;
<tbody id="usersViewBody">
    @foreach($users as $user)
    <tr>
        <td><a data-uid="{{$user->id}}" class="openUserPanel" href="#tabUserInfo"> {{$user->name}}</a></td>
        <td>{{$user->department}}</td>
        <td>{{$user->position}}</td>
        @if($user->status == 0)
        <td class="userActive">Active</td>
        @elseif($user->status == 1)
        <td class="userOOO">On Leave</td>
        @elseif($user->status == 2)
        <td class="userInactive">Retired</td>
        @else
        <td class="userInactive">Terminated</td>
        @endif
        @if($user->status == 2 || $user->status == 3)
        <td><button class="btn btn-xs btn-default payrollModalTrigger disabled" data-uid="{{$user->id}}">Update Payroll</button></td>
        @else
        <td><button class="btn btn-xs btn-default payrollModalTrigger" data-uid="{{$user->id}}">Update Payroll</button></td>
        @endif
    </tr>
    @endforeach
</tbody>
</table>
</div>
<div class="text-center">
    {{ $users->links() }}
</div>
return $users;
return view('name of the view', compact('users'));