如何使用 Ajax 在 Laravel 中返回、查看和传入数据?

How can I return view and pass in data in Laravel with Ajax?

提问人:in2d 提问时间:8/24/2022 最后编辑:Rwdin2d 更新时间:11/16/2022 访问量:747

问:

我的 Ajax 函数有问题,它应该使用从另一个函数返回的数据调用 Laravel 视图。出于某种原因,它返回错误 500。我知道一个事实,$paginatedResults返回正确的数据,就好像我var_dump它是正确的一样。$paginatedResults

public function ajaxSearch(Request $request)
{
    $data = $request->input('searchVal');
    $pageNr = $request->input('pageNr');
    $dataType = $request->input('dataType');
    $paginatedResults = $this->paginateTypeResults($data, $pageNr, $filetype);

    $loadData = view('search.searchresults')->with($paginatedResults)->render();
    echo response()->json($loadData);
}
JavaScript PHP Ajax Laravel 视图

评论

0赞 Vincent Menzel 8/24/2022
你得到的错误是什么?
0赞 in2d 8/24/2022
“message”: “非法偏移类型”,
0赞 in2d 8/24/2022
事实证明,$paginatedResults是一个对象,但我认为它应该是一个数组。但是我仍然无法用我的ajax函数返回它。
0赞 8/24/2022
它返回错误 500,因为服务器端崩溃。无论如何,究竟是哪一行导致了错误?render() 那个?
2赞 brombeer 8/24/2022
您是否将呈现的视图 (HTML) 作为 JSON 发送?你有没有试过 ing 而不是 ing,大多数 Laravel 方法都会返回内容returnecho

答:

1赞 Paul J.K 8/25/2022 #1

这是 json 响应

return response()->json([
   'html' => view('search.searchresults', compact('paginatedResults'))->render()
]);

成功后

$.ajax({
   //
   dataType: 'json',
   success: function(response) {
      $('.//here').html(response.html)
   }
})