[英]Load More option not working in Laravel AJAX
我正在尝试在 Laravel 中使用 AJAX 函数获取博客。 但它不起作用,也没有显示任何错误。 我想要的是显示一个load more
按钮,从那里使用 AJAX 请求加载更多博客。 这是我的前端代码:
<div class="panel-body">
{{ csrf_field() }}
<div id="post_data"></div>
</div>
还有我的ajax脚本:
$(document).ready(function(){
var _token = $('input[name="_token"]').val();
load_data('', _token);
function load_data(id="", _token)
{
$.ajax({
url:"{{ route('loadmore.load_data') }}",
method:"POST",
data:{id:id, _token:_token},
success:function(data)
{
$('#load_more_button').remove();
$('#post_data').append(data);
}
})
}
$(document).on('click', '#load_more_button', function(){
var id = $(this).data('id');
$('#load_more_button').html('<b>Loading...</b>');
load_data(id, _token);
});
});
这是我的路线:
网页.php
Route::post('/loadmore', 'LoadMoreController@load_data')->name('loadmore.load_data');
这是控制器功能:
加载更多控制器.php
class LoadMoreController extends Controller
{
public function load_more(){
function load_data(Request $request)
{
if($request->ajax())
{
if($request->id > 0)
{
$data = DB::table('blogs')
->where('blog_id', '<', $request->id)
->orderBy('blog_id', 'DESC')
->limit(6)
->get();
}
else
{
$data = DB::table('blogs')
->orderBy('blog_id', 'DESC')
->limit(6)
->get();
}
$output = '';
$last_id = '';
if(!$data->isEmpty())
{
foreach($data as $row)
{
$output .= '
<div class="row">
<div class="col-md-12">
<h3 class="text-info"><b>'.$row->blog_title.'</b></h3>
<p>'.$row->blog_content.'</p>
<br />
<br />
<hr />
</div>
</div>
';
$last_id = $row->id;
}
$output .= '
<div id="load_more">
<button type="button" name="load_more_button" class="btn btn-success form-control" data-id="'.$last_id.'" id="load_more_button">Load More</button>
</div>
';
}
else
{
$output .= '
<div id="load_more">
<button type="button" name="load_more_button" class="btn btn-info form-control">No Data Found</button>
</div>
';
}
echo $output;
}
}
}
}
如果需要或询问,我很乐意提供任何其他详细信息。 任何建议/解决方案将不胜感激。
Laravel 版本 8
web.php下面是路由文件:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/loadmore', [App\Http\Controllers\LoadMoreController::class, 'index']);
Route::post('/loadmore/load_data', [App\Http\Controllers\LoadMoreController::class, 'load_data'])->name('loadmore.load_data');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.