Laravel使用AJAX请求控制器返回视图如何通过DOM操作渲染到页面
解决方法
首先你需要先在前端页面中提前定义一个用来承载详情内容的容器,比如:
<!-- 放在你需要展示详情的页面对应位置 --> <div id="event-detail-wrapper"></div>
然后修改你的AJAX代码,在success回调中接收后端返回的渲染好的HTML字符串,直接插入到上面的容器中即可:
function showDetailEvent(ids){ $.ajax({ url : '{{url('')}}/event/show', type : "POST", cache: false, data : {id:ids,_token:'{{csrf_token()}}'}, success:function(response){ // 把后端返回的视图HTML直接插入到预设的容器中 $('#event-detail-wrapper').html(response); } }); }
注意事项
- 你当前贴出的控制器代码存在语法错误,
return view('event_show',compact('event');末尾少了一个右括号,修正后为:public function show(Request $request) { $event = Event::find($request->id); return view('event_show',compact('event')); } - 如果插入后样式异常,检查
event_show视图文件是否包含多余的html/body等全局标签,作为片段插入的视图不需要写完整页面结构,只需要写详情区域的代码即可。
内容的提问来源于stack exchange,提问作者Alek
相关产品推荐
相关产品推荐

