1

削除ボタンを押したときに、ユーザーが間違いを犯していないことを確認するためにアラートがポップアップするようにしたいと思います。

したがって、codeIgniter では、これがうまく機能しました。

ボタン:

<td><a class='Right btn btn-danger' onClick="ConfirmMessage('news', <?php echo $new->id ?>,'news')">
                        <i class="icon-remove-sign icon-white"></i>
                    </a></td>

Javascript:

function ConfirmMessage(type, id, types) {
    if (confirm("Are you sure you want to delete this "+type+" ?")) { // Clic sur OK
     document.location.href='<?php echo site_url(); ?>/'+types+'/delete/'+id;
    }
  }

しかし今、Symfony2 では、これを行うことはできません:

ボタン

<td><a class='Right btn btn-danger' onClick="ConfirmMessage('artist', {{ artist.id }},'news')">
                            <i class="icon-remove-sign icon-white"></i>
                        </a></td>

Javascript

function ConfirmMessage(type, id, types) {
    if (confirm("Are you sure you want to delete this "+type+" ?")) { // Clic OK
        document.location.href="{{ path('ymtest_Delete'"+types+", {'id': "+id+"}) }}";
    }
}

Symfony が URL を生成しようとするとエラーが発生するためです。

解決策は何ですか?ありがとう

4

1 に答える 1

4

あなたは書くことができません

 document.location.href="{{ path('ymtest_Delete'"+types+", {'id': "+id+"}) }}";

twig 関数と javascript 関数を混在させています。Twig はバックエンドで解析およびコンパイルされます HTML ページが受信された後、クライアント側で Javascript が実行されます

各 URL タイプを生成して、javascript 変数に割り当てる必要があります。

これを行うためのよりエレガントな方法は、URL とメッセージをデータ属性に保存することです。

<a class="Right btn btn-danger" data-url="{{ path('ymtest_EditMusician', {'id': artist.id}) }}" data-message="Are you sure you want to delete this type ?" ></a>

イベント クリックを JavaScript でバインドし、データ属性値を取得できるようになりました。もう JavaScript テストは必要ありません

于 2013-02-06T22:17:08.093 に答える