【问题标题】:How to load blade or php content into a view via ajax/jquery in laravel?如何在 laravel 中通过 ajax/jquery 将刀片或 php 内容加载到视图中?
【发布时间】:2014-09-08 20:53:31
【问题描述】:

正如标题所说,我正在尝试使用 ajax 请求在视图中动态加载内容。我知道如果您使用 html 元素,例如可以做到这一点("#div_place").html(<p>...)。例如,当我想将一些 php/blade 对象加载到 div 中时,问题就出现了。这是可能的还是有其他方法可以达到我想要的结果。

【问题讨论】:

    标签: javascript php ajax laravel


    【解决方案1】:

    这很简单。假设您使用的是 jQuery...

    1. 创建一个响应 AJAX 调用并返回 HTML 片段的路由

      Route::get('test', function(){
      
          // this returns the contents of the rendered template to the client as a string
          return View::make("mytemplate")
              ->with("value", "something")
              ->render();
      
      });
      
    2. 在您的 javascript 中:

      $.get(
          "test",
          function (data) {
              $("#my-content-div").html(data);
          }
      );
      

    【讨论】:

    • 谢谢,只是做了一些更多的挖掘,并意识到类似的事情是我必须做的。
    • 我知道这是一个旧帖子,但这不是要走的路。假设您在<div id="xhr"><footer> 中有一个<header> 一些内容。您不想一遍又一遍地加载<header><footer>,对吧?因此,在这种情况下,您可能希望采用不同的方法。
    • @DerkJanSpeelman 你可能是对的。在这个问题中,OP 询问如何动态加载刀片模板 - 刀片模板(通常)编译为 HTML,因此这似乎是对该问题的最直接答案。就个人而言,我只是来回传递数据,而不是 HTML,但这依赖于 Javascript 来呈现它,这(恕我直言)超出了原始问题的范围。
    • 顺便说一句,我认为您想在您的 javascript 中执行 $.get(..) ajax 请求。
    • @Adam 谢谢!我不敢相信三年内没有人注意到这个错误:-D
    【解决方案2】:

    经过一番挖掘,我找到了 this ,它帮助我解决了这个问题。

    您必须通过 jquery 使用.load("url/page/..."),然后在 routes.php 文件中设置一个路由,以显示一个包含需要加载的数据的视图,例如

    Route::get('/url/page/...', function(){
        return View::make('test');
    });
    

    这会返回需要动态加载的必要php代码,干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-09
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 2016-03-25
      • 2015-08-09
      相关资源
      最近更新 更多