繁体   English   中英

如何使用Twig和Symfony2创建一个确认框以将用户重定向到页面

[英]How to create a confirm box with Twig and Symfony2 to redirect the user to page

当按下删除按钮时,我想要弹出警报以确保用户没有犯错。

所以,在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时出错。

什么可以解决方案? 谢谢

你不能写

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

你正在混合twig函数和javascript函数。 Twig将在后端进行解析和编译.Javascript将在收到html页面后在您的客户端执行

您必须生成每个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>

您现在可以使用javscript绑定事件单击并检索数据属性值。 没有更多的javascript测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM