我想将整个html返回到控制器中,以进行ajax响应。我正在使用render(),但没有将任何数据放入返回方法
下面是我的ajax:
$.ajax({
type: 'GET',
url: '{{url('/filter_each_video')}}',
data : { resolution : myCheckboxes, fps : myCheckboxesfps },
dataType: 'json',
success: function (response) {
console.log(response);
},
error: function (data) {
console.log(data);
// console.log(data);
}
});下面是我的控制器,实际渲染视图的位置
function filter_each_video(){
if(request()->ajax()){
$item = Item::whereIn('format', $_GET['resolution'])->get();
$formats = DB::table('items')->select('format')->distinct()->get();
$fps = DB::table('items')->select('fps')->distinct()->get();
$data['item_count'] = $item;
$data['item'] = $item;
$data= $this->sellWise($data);
$data= $this->starWise($data);
$data= $this->dateWise($data);
return view('frontend.pages.videos_for_each_filter', compact('data','formats','fps'))->render();
}
}下面是视图文件,我在这里设置了值,并将整个html返回给控制器和ajax响应。
<?php
$html ="";
$html.= '<div class="row video-list">';
foreach($data['item'] as $video){
$html.= '<div class="item video-item сol-12 col-md-6 col-lg-3 text-white mb-4 pull-left">
<div class="item-wrapper display-7">
<div class="item-img">Video Name</div>
</div>
</div>';
}
$html.= '</div>';
return $html;
?>如果任何人知道我在将html内容抓取到控制器上到底做错了什么,请让我知道。
我希望将整个html返回给ajax响应。
发布于 2021-10-16 05:54:29
(1)你尝试过response($output, 200, $headers)吗?
$html = view('frontend.pages.videos_for_each_filter', compact('data','formats','fps'))
->render();
\Log::debug('Rendered HTML', ['html'=>$html]);
return response($html,200);检查您的/storage/logs以再次检查$html是否正确。
(2)您也可以尝试使用JSON:
return response()->json(['html' => $html]); 而在客户端,
console.log("res is ", response.data.html);另外,您应该验证请求数据,而不是直接使用$_GET。你的控制器方法应该看起来更像这样...
use Illuminate\Http\Request; // (? From memory, maybe check the namespace)
public function filter_each_video(Request $request)
{
$request->validate(['resolution' => 'required|string']);
if( $request->ajax() ){
$item = Item::whereIn('format', $request->resolution)->first();
// ... cont'd
}
}如果您得到的是空响应,则在其中添加一些\Log::debug语句,并找出丢失响应的位置。
https://stackoverflow.com/questions/69592716
复制相似问题