2014-11-23 67 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}) }} 

注:你的情況 - 建立一個搜索 -