2

モーダル ボックスからの ajax リクエストを使用して、symfony2 アプリケーションにデータを保存しています。モーダル ボックスが呼び出されると、モーダル マークアップがレンダリングされます。したがって、モーダル ボックス マークアップのどこでも "" 記号を実際に使用することはできません。

私のコードは次のとおりです。

var path = {{ path('_inserttask') }};
    $.ajax({
        type: 'POST',
        url: path,
        data: { myid: 123456 },
        success: function(data) {
            $('#mask , .login-popup').fadeOut(300 , function() {
                $('#mask').remove();
            });
        }
    });

ajax が呼び出されると、コンソールにエラーが表示されます。ハードコードされた URL を使用すると、動作することがわかりました。しかし{{ path('_inserttask') }}、URLとして使用するとエラーが発生します。私が使用していない引用記号のためであることを理解しています。問題を解決するには?それはすでに2時間を殺しました:-(

4

1 に答える 1

13

上記から、パス変数の値に二重引用符を付けていません。これを試して -

var path = "{{ path('_inserttask') }}";
$.ajax({
    type: 'POST',
    url: path,
    data: { myid: 123456 },
    success: function(data) {
        $('#mask , .login-popup').fadeOut(300 , function() {
            $('#mask').remove();
        });
    }
});

さらに考えてみると、このスクリプトを twig テンプレートに埋め込んでいて、後で html にレンダリングしてからブラウザーに送信しますよね? はいの場合、上記の変更で問題が解決すると思います。

純粋な JavaScript ファイルで twig を使用しようとしている場合。うまくいかないと思います。こうやってるなら。パスの値をhtmlに入れてから、javascriptを使用してその値を取得し、代わりにajaxを呼び出そうとしていると思います。例えば。そのパス URL を div の属性の 1 つに埋め込むことを選択します。

小枝のテンプレート ファイル (たとえば、index.html.twig)

<div id="abc" data-path="{{path('_inserttask')}}">
</div>

私のjavascriptファイル(abc.jsなど)

var path = $("#abc").attr("data-path");
$.ajax({
    type: 'POST',
    url: path,
    data: { myid: 123456 },
    success: function(data) {
        $('#mask , .login-popup').fadeOut(300 , function() {
            $('#mask').remove();
        });
    }
});
于 2013-03-16T11:40:10.603 に答える