2014-11-23 114 views
1

我路过AJAX GET参数,我的网址是这样的:的Symfony路由AJAX get方法

example.com/autocamplete?term=string 

我补充路线为:

autocomplete: 
    path:  /autocomplete?term={term} 
    defaults: { _controller: CatalogWebBundle:Default:autocomplete } 

但有毛病我的路线,因为我得到错误:

GET http://127.0.0.1:8000/autocomplete?term=sdfsd 500 (Internal Server Error) 

如何重写我的路由到ajax获取patameters?

JS是:

<script type="text/javascript"> 
    $(function() { 

     //autocomplete 
     $("#search").autocomplete({ 
      source: "\/autocomplete", 
      minLength: 1 
     }); 

    }); 
</script> 

回答

3

安装FOSJsRoutingBundle,创建一个正确的路线,因为它是你的问题不正确。

所以,你应该做这样的事情:

添加束JS(可在全球使用的基本模板):

<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script> 
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script> 

配置路由(无QS):

autocomplete: 
    path:  /autocomplete 
    defaults: 
     _controller: CatalogWebBundle:Default:autocomple 
    options: 
     expose: true 

配置您的JS:

<script type="text/javascript"> 
    $(function() { 

     //autocomplete 
     $("#search").autocomplete({ 
      source: Routing.generate('autocomplete', { 'term': value });, 
      minLength: 1 
     }); 

    }); 
</script> 
+0

我不使用树枝将无法正常工作,但使用PHP模板如何改写这个''to php? – Wizard 2014-11-25 14:39:15

+0

@TomasLiachovskis看看[这个文档页](http://symfony.com/doc/current/cookbook/templating/PHP.html) – xurshid29 2014-11-25 16:30:39

0

之外(使用FOS JS路由), 如果你是“渲染”的JS函数文件,而无需任何“动态生成或路线”以上版本,你可以用一种更简单的方法

{{ path('routeName', {'slug': slug}) }} 

注:你的情况 - 建立一个搜索 -