我有一个页面,其中包含项目列表和一些用于搜索/排序这些项目的控件。我希望这些控件使用Ajax动态工作,但我找不到在Symfony中使用它的方法。
在普通的PHP中,我有一个收集数据的JS文件,然后将其发送到一个PHP文件,该文件触发了类中指定的方法。我怎么能在Symfony3中做这样的事情?我找到的唯一教程是Symfony 1.x。
如果您在表单中,您可以执行以下操作:
$(document).submit(function () {
var url = $('form').attr('action');
var data = $('form').serialize();
$.post(url, data, function (data) {
window.location.href = data.redirect;
})
.fail(function () {
$('form').replaceWith(data.form);
});
});
你只需要发送正确的网址:
$(document).on('click', 'a', function () {
var url = window.location.href;
$.get(url, function (data) {
$('.container').replaceWith(data);
});
});
也可以使用路由生成器,只需将:"friendsofsymfony/jsroutingbundle":"dev-master"添加到您的composer.json.
AppKernel.php:
new FOS'JsRoutingBundle'FOSJsRoutingBundle()
然后在你的路线中配置它。yml:
fos_js_routing:
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
最后在路由中使用"暴露"arg:
@Route("/{table}/index", name="beta.index", options={"expose"=true})
我使用注释路由
在您的JS:中
var url = Routing.generate('beta.index', { 'table': 'foo' });
希望它能帮助你:)