Laravel DOM 操作以显示来自控制器的视图

Laravel DOM manipulation to show the view from controller

我想使用 ajax 显示详细数据,我设法将 id 发送到控制器,但是从控制器生成的 return 仅在浏览器预览中显示。

路线:

Route::post('/event/show',[EventController::class, 'show'])

控制器:

    public function show(Request $request)
    {
        $event = Event::find($request->id);
        
        return view('event_show',compact('event');
    }

Ajax:

    function showDetailEvent(ids){
    $.ajax({
      url : '{{url('')}}/event/show',
      type : "POST",
      cache: false,
      data : {id:ids,_token:'{{csrf_token()}}'},
      success:function(){

        // the question is right here
        
      }
    });
  }

你必须对响应做一些事情,这样才会有效果。只是做一个 ajax 请求并不能为你做那件事,因为浏览器不知道你想让他做什么。

function showDetailEvent(ids){
    $.ajax({
      url : '{{url('')}}/event/show',
      type : "POST",
      cache: false,
      data : {id:ids,_token:'{{csrf_token()}}'},
      success:function(res){

        $('.container').replaceWith(res);
        
      }
    });
  }

我不知道你认为 DOM 所以你必须用你想要内容所在的元素的选择器替换 .container

除非您有理由(特定设计模式)这样做,否则您不会通过 ajax 请求 HTML。 Ajax 更有可能向 API 发出请求以接收 JSON 可以由 JavaScript 解释的 JSON。