我正在尝试使用 ajax 查找分页的下一页。然而,它不断带来整个身体。我已经采取了一个打印屏幕来显示问题。
我不是 ajax 节目的专家,希望得到一些关于如何纠正此问题的帮助?
我的代码如下:
public function viewall()
{
$data["projects"] = $projects = Auth::user()->projects()->paginate(3);
if(Request::ajax())
{
$html = View::make('projects.viewall', $data)->render();
return Response::json(array('html' => $html));
}
return View::make('projects.viewall')->with('projects', $projects);
}
js/js.js
$(".pagination a").click(function()
{
var myurl = $(this).attr('href');
$.ajax(
{
url: myurl,
type: "get",
datatype: "html",
beforeSend: function()
{
$('#ajax-loading').show();
}
})
.done(function(data)
{
$('#ajax-loading').hide();
$("#projects").empty().html(data.html);
})
.fail(function(jqXHR, ajaxOptions, thrownError)
{
alert('No response from server');
});
return false;
});
查看全部刀片.php
@extends("layout")
@section("content")
<div class="container">
<h4>Your Projects</h4>
<div id="ajax-loading" class="alert alert-warning" style="display: none;">
<strong>Loading...</strong>
</div>
@if (Auth::check())
@if (count($projects) > 0)
@foreach ($projects as $project)
<div class="one-third column" id="projects">
{{ $project->project_name }}
{{ $project->project_brief }}
{{ date("d-m-Y", strtotime($project->start_day)) }}
</div>
@endforeach
@else
<h5 class="errorslist">You have no projects click <a class="errorslist" href="/project/create">here to create a project</a></h5>
@endif
@endif
<div class="sixteen columns">
{{ $projects->links() }}
</div>
</div>
@stop
这一行:
$("#projects").empty().html(data.html);
将用您在此处创建的返回html
填充#project
:
$html = View::make('projects.viewall', $data)->render()
;
因此,您只需要更改要加载的"部分视图"projects.viewall
即可。
可能您不需要扩展主布局。
但是您在此处呈现视图:
$html = View::make('projects.viewall', $data)->render();
所以html是由Laravel创建的,然后你把它作为html插入到 #projects 的domElement中。
我遇到了这种问题,只是运行
dd( json_decode( json_encode( Products::paginate(5) ), true) );
并且可以得到提示:)
我在这里阅读了有关此的解决方案:
http://www.tagipuru.xyz/2016/05/17/displaying-data-using-laravel-pagination-in-the-html-table-without-page-reload/