2013-07-30 97 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在页面)。

选择您最喜爱的解决方案!