Symfony2使用数据库参数创建动态链接

时间:2013-07-30 06:53:42

标签: javascript jquery symfony

我通过$ .ajax从数据库中获取数据。但是我怎样才能创建链接?

这是我的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>";
                }
            }
        });

当我将{{path('_ niederlassung',{filiale:'exampledepartment'})}}放入树枝时,它将呈现完美且完美无缺。

我在这里向您展示路线:

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

1 个答案:

答案 0 :(得分: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之一中使用的技术(在页面中用ctrl + f搜索“替换”)。

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