2013-07-30 99 views
0

我通過$ .ajax從數據庫獲取數據。但我如何創建一個鏈接?Symfony2使用數據庫參數創建一個動態鏈接

這是我的Ajax調用,結果作品:

var $resultDepartment = $('#resultDepartment'); 
     $.ajax({ 
      type: "post", 
      url: url2, 
      data: "locationid=" + locationid, 
      dataType: "json", 
      success: function (resp) { 
       for (var i = 0; i < resp.length; i++) { 
        var $link = "{{ path('_niederlassung', {filiale: resp[i].bezeichnung}) }}"; 
        console.log($link); 
        $resultDepartment.html("Your Department:<br><br>" + resp[i].bezeichnung) + "<br><br><a href='" + $link + "'>weiter zur Filiale</a>"; 
       } 
      } 
     }); 

當我把{{路徑( '_ niederlassung',{分公司: 'exampledepartment'})}}到樹枝,它會被渲染完美並且工作完美。

在這裏,我向您展示的路線:

_niederlassung: 
path: /niederlassung/{filiale} 
defaults: { _controller: MbsNiederlassungBundle:Default:index, filiale: "all" } 

回答

0

你有3個解決方案:

1)通過動作返回路線

//動作:

return new Response(json_encode(array(
    // here what you want ... 
    'link' => $this->generateUrl('_niederlassung', array('filiale' => resp->getBezeichnung())), 
))); 

// JS回撥

for (var i = 0; i < resp.length; i++) { 
    var $link = resp[i].link // Get the link with ease 
} 

2)使用FOSJsRoutingBundle

甲束以產生在JS URL:https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

3)地址替換JS(有效HTML)

使一個div(或另一個html元素)包含一些參數傳遞給JS:

<div id="js_config" 
    data-filiale-url-prototype="{{ path('_niederlassung', {filiale: 'prototype'}) }}" 
> 
</div> 

//你的JS回調:

// ... 

var urlPrototype = $('#js_config').attr('data-filiale-url-prototype'); 

for (var i = 0; i < resp.length; i++) { 
    // ... 
    var $link = urlPrototype.replace(/prototype/g, resp[i].bezeichnung); 
} 

這是Sf2的cookbook的一個使用的tehchnical(搜索 「替換」 用Ctrl + F在頁面)。

選擇您最喜愛的解決方案!