我正在尝试制作一个单页 CRUD 应用程序,并且我正在使用 AJAX 和 jQuery。在本例中,我提交表单并异步在数据库中存储一个新国家/地区,然后使用新数据渲染部分 View 。
这是我的脚本和从数据库检索国家/地区并返回部分 View 的方法。
$('#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 在页面中实际渲染 View 的想法,感觉这应该是 Laravel 的工作。
如何使用 Laravel 渲染部分 View 并使用 AJAX,而不必将该工作委托(delegate)给 jQuery(append()
和 empty()
)?
最佳答案
将您的 View 传递给 View 助手,将其渲染到变量中并将该变量作为对 AjAx 的响应返回。
$view=view('your-view-blade');
$view=$view->render();
$responseData->responseSuccess($view);
在 AjAx 的回调中,您可以使用渲染的 HTML,您可以随意将该 HTML 附加到任何元素。
关于jquery - Laravel:使用 AJAX 请求渲染部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984073/