0

$.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" }
4

1 に答える 1

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 による URL の置換(有効な HTML)

JS に渡すいくつかのパラメーターを含む div (または別の html 要素) を作成します。

<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 クックブックの 1 つで使用されている技術です(ページ内で ctrl + f で「置換」を検索してください)。

お気に入りのソリューションを選択してください。

于 2013-07-30T07:42:28.580 に答える