【问题标题】:Laravel DOM manipulation to show the view from controllerLaravel DOM 操作以显示来自控制器的视图
【发布时间】:2021-08-09 07:53:34
【问题描述】:

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

路线:

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

控制器:

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

阿贾克斯:

    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
        
      }
    });
  }

【问题讨论】:

  • {{url('')}} 是不是有点没意义?

标签: javascript jquery ajax laravel model-view-controller


【解决方案1】:

你必须对响应做一些事情,这样它才会有任何效果。仅仅做一个 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。更有可能向 API 发出 Ajax 请求以接收可由 JavaScript 解释的 JSON。

【讨论】:

    猜你喜欢
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多