2016-05-17 47 views
-1

我有项目和用于搜索/整理这些项目的一些控制列表的页面。我希望这些控件能够使用Ajax进行动态工作,但我无法在Symfony中找到使用它的方法。如何在Symfony中使用Ajax?

在纯PHP,我有这样的收集的数据JS文件,然后将其发送到一个PHP文件,从而引发从类指定的方法。我如何在Symfony3中做类似的事情?我发现只有Symfony 1.x的教程。

+3

的可能的复制[如何Ajax和Symfony2的整合(http://stackoverflow.com/questions/13584591/how-to -integrate-AJAX与 - Symfony2的) –

回答

0

如果你是一个形式,你可以这样做:

$(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); 
     }); 
}); 

也可以使用路由发生器,只需在composer.json中添加:“friendsofsymfony/jsrouting-bundle”:“dev-master”即可。

AppKernel.php:

new FOS\JsRoutingBundle\FOSJsRoutingBundle() 

然后在你的routing.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' }); 

希望它会帮助你:)