首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ajax填充Laravel中的表?

用ajax填充Laravel中的表?
EN

Stack Overflow用户
提问于 2014-02-07 08:48:42
回答 2查看 7.9K关注 0票数 3

我有一个Laravel应用程序,我在其中创建了一个页面布局,将一个表作为"content“变量添加到其中(几乎都来自我找到的教程)。下面是控制器操作:

代码语言:javascript
复制
public function getMain() {
    $js_config = Category::all();
    $resources = Resource::all()->take(100);
   $this->layout->content = View::make('categories.show')->with('js_config', $js_config)->with('resources', $resources);
}

这将使用主布局模板,并使用content变量插入此表格:

代码语言:javascript
复制
<table class="table table-striped table-bordered">
    <thead>
        <tr>
            <td>ID</td>
            <td>Name</td>
        </tr>
    </thead>
    <tbody>
    @foreach($resources as $key => $value)
        <tr>
            <td>{{ $value->id }}</td>
            <td>{{ $value->title }}</td>

        </tr>
    @endforeach
    </tbody>
</table>

但问题来了:我有一个jstree,用户可以在其中选择节点,触发一个jQuery方法:

代码语言:javascript
复制
$('#jstree2').on("changed.jstree", function (e, data) {
    console.log(data.selected);
    $.get("filter", { category: data.selected })
        .done(function (resultdata) {
            //Test only, this returns the data wanted in json, which I stringify just to display in test
            alert("Data Loaded: " + JSON.stringify(resultdata));
        });
});

jQuery在控制器中调用此操作方法:

代码语言:javascript
复制
public function getFilter()
  {
      $input = Input::get('category.0');

      $categories = Category::find($input);


      //category is the name from the model below
      return Response::json(array(
          'error' => false,
          'category' => $categories->toArray()),
          200
      );
  }

(之所以有一个数组作为输入,是因为我最终希望能够在树中选择多个节点)

此操作正确地从DB获取数据,并将其作为json返回。然后,上面jQuery中的回调会在此时发出警报,就像测试一样。

当然,我真正想做的是重新填充表。现在,正如您所看到的,我已经使用Bootstrap创建了一个漂亮的表,我只希望能够让用户在不刷新页面的情况下随意重新填充它。

但我不知道如何做到这一点,除了费力地在某种字符串返回值中重新创建这个表,但这似乎不是一个好主意。

我希望有一些方法可以将返回值传递回视图,并让它重新加载表中的值,使用上面描述的在php变量"content“中加载的相同"sub view”?

非常感谢您的帮助!

编辑:

按照要求,下面是json的示例(取自浏览器控制台输出,它实际上不是categories表,而是相同的格式):

{"id":"1",“title”:“运输AC4494”,"created_by":"4","modified_by":null},{"id":"2",“title”:“安全第一AC 4294","created_by":"3","modified_by":null},{"id":"3",”title“:”保修AC 34066","created_by":"4","modified_by":null}

编辑2(刚刚意识到在之前的json编辑中有一些来自控制器的废话,所以我现在把它改成了一个更干净的示例)

编辑3:

我通过在jQuery中创建表行来实现这一点:

代码语言:javascript
复制
var trHTML = '';
                $.each(resultdata, function (i, item) {
                    trHTML += '<tr><td>' + item.id + '</td><td>' + item.title + '</tr>';
                });
                $('#ajaxtable').html(trHTML);

但我主要希望这能更好地解释我的问题:这不是我想要做的。我想要的只是创建一个局部视图,然后用jquery加载这个现成的视图:

如下所示的局部视图:

代码语言:javascript
复制
<table class="table table-striped table-bordered" id="resultstable">
    <thead>
        <tr>
            <td>ID</td>
            <td>Name</td>
        </tr>
    </thead>
    <tbody id="ajaxtable">
    @foreach($resources as $key => $value)
        <tr>
            <td>{{ $value->id }}</td>
            <td>{{ $value->title }}</td>
        </tr>
    @endforeach
    </tbody>
</table>

我通过从jquery代码中创建并调用控制器中的一个新函数来测试这一点:

代码语言:javascript
复制
   public function getTable()
    {
        $resources = Resource::all()->take(5);
        return View::make('categories.results')->with('resources', $resources);
    }

但它不起作用。虽然它确实给了我那个视图的html,但它是未经处理的。也就是说,foreach循环没有被解析,但仍然作为代码存在于表中。如图所示:

那么如何用jquery代码加载这个视图呢?我觉得,即使jquery创建表行工作正常,在php中创建视图,然后用jquery加载它应该是更正确的方式……?

EN

回答 2

Stack Overflow用户

发布于 2014-02-07 09:11:31

你看过Datatables jQuery插件了吗?实际上,Laravel有一个很好的包,可以帮助集成Laravel和Datatables。Laravel包生成json,您可以使用Datables+AJAX重新填充数据。可能要检查一下...

https://github.com/Chumper/datatable http://datatables.net/

否则,您只需要使用AJAX重新填充表。

票数 2
EN

Stack Overflow用户

发布于 2014-08-19 08:59:56

正如Sirago回答的那样,使用jQuery Datatables是以ajax方式将数据加载到表中的好选择。

除了Sirago的建议之外,这里还有另一个很棒的Laravel 4包,它专门用于从服务器端生成JSON数据。

https://github.com/bllim/laravel4-datatables-package

但除了服务器端配置(修改composer.json、config/app.php等文件)外,您还需要使用Javascript编写代码,还需要利用Datatables。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21617237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档