我在laravel中有一个用户列表表单。所以当我点击表格行时,它会自动从数据库加载用户详细信息而不重定向。我听说过ajax。但我不知道如何在laravel中使用它..
我想这样做
但没有重定向页面..
$("tr").click(function()
{
$.ajax({
type: "GET",
url: $(this).data("href"),
dataType: "text",
success : function(data) {
$('#details-container').load(data)
}
});
});
它应该是这样的吗?但我是如何从数据库中获取数据的呢?我不知道。请帮帮我..
答案 0 :(得分:1)
在Laravel中与在"本地"中相同。 PHP。使用您的Ajax请求,您可以发送和异步请求,并只刷新您网站的一小部分,因此您无需重新加载整个页面。
如果你想使用laravel,你应该:
为您的请求创建路线
Route::get('user/{id}', function($id)
{
// So all your GET requests with any user id goes to this script (in routes.php)
// here you should load your user information, maybe with ORM
$user = User::where('id','=',$id)->get();
// Build any HTML snippet, or build JSON data (and build the information in Javascript on your page)
//return here JSON / or html
$data = array() -> containts information for the blade template
return view('users.information', $data);
});
您的AJAX请求现在返回JSON /或HTML,将其附加到您要显示它的网站。
答案 1 :(得分:1)
<table>
<thead>
...
</thead>
<tbody>
<tr data-details-link="http://your-domain/user/{user-id}/details">
...
</tr>
</tbody>
</table>
$('table tr').on('click', function (event)
{
event.preventDefault();
var $this = $(this);
// not necessary but you should show a loading here
$.ajax({
url: $this.data('details-link')
})
.success(function (response)
{
// the `response` variable is HTML code. Insert it into a modal.
});
});
...
Route::get('user/{id}/details', [ 'uses' => 'UserController@details' ]);
...
UserController
方法:public function details($id)
{
$user = \App\User::find($id);
if (!$user)
abort(404);
return view('user.details')->with('user', $user);
}
**您的user/details.blade.php
应该包含将作为AJAX响应发送的HTML。