我正在尝试制作一个单页 CRUD 应用程序,并且将 AJAX 与 jQuery 结合使用。在本例中,我提交表单并在数据库中异步存储一个新国家/地区,然后使用新数据渲染部分视图。
这是我的脚本和从数据库检索国家/地区并返回部分视图的方法。
$('#create-country-form').submit(function(event) {
$.post('/country/store', $('#create-country-form').serialize(), function() {
$.get('/country/all', function(data) {
$('#countries-table').empty();
$('#countries-table').append(data['html']);
});
});
event.preventDefault();
});
class CountryController extends BaseController {
public function all() {
$countries = Country::All();
$html = View::make('countries.list', compact('countries'))->render();
return Response::json(['html' => $html]);
}
// ...
}
然而,我不喜欢使用 jQuery 在页面中实际渲染视图的想法,感觉这应该是 Laravel 的工作。
如何使用 Laravel 渲染部分视图并使用 AJAX,而不必将该工作委托给 jQuery (append()
and empty()
)?
将您的视图传递给视图助手,将其渲染到变量中并将该变量作为对 AjAx 的响应返回。
$view=view('your-view-blade');
$view=$view->render();
$responseData->responseSuccess($view);
在 AjAx 的回调中,您可以使用渲染的 HTML,您可以随意将该 HTML 附加到任何元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)