删除表单内的按钮/链接

时间:2012-06-21 10:16:04

标签: forms cakephp-2.1

我的会话卡有一个表单,我想配置删除链接。 我想我可以在每行结尾处使用get请求来完成它。 但是,在cakephp 2中,它“建议”使用帖子请求更好。

没关系:

<?php
    echo $this->Form->postLink(
                    '<button class="btn btn-danger">
                         <i class="icon-trash icon-white"></i>
                     </button>',
                    array(
                          'action'   => 'deleteBasket', $plaque['id']
                          ),
                    array(
                          'class'    => 'tip',
                          'escape'   => false, 
                          'confirm'  => 'Are you sure ?'
                         ));
?>

除了当我使用这段代码时,它会在我的表单中生成一个表单,所以当我提交它时,它就搞砸了。我不能把它放在我的排外面。 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

从CakePHP 2.5开始,您可以在表单元素中使用postLink。您必须将选项inline设置为false:

echo $this->Form->postLink('delete', array(
    'controller' => 'somewhere',
    'action' => 'delete',
    $deletedID
), array(
   'inline' => 'false'
));

...然后获取'postLink'块(实际的html表单标签所在的位置),最好在布局视图的底部,如下所示

echo $this->fetch('postLink');

此解决方案需要启用javascript!

Quoting the docs:

inline - 是否应以内联方式输出关联的表单标记。设置为false以将表单标记附加到“postLink”视图块。默认为true。

block - 选择要附加表单标记的自定义块。使用此选项将覆盖内联选项。

(是的,这是一个古老的话题,但是因为我发现这个研究同样的问题,所以更新答案会很好......)

答案 1 :(得分:0)

尝试以下方法:

<?php echo $this->Form->create('Controller Name', array('url' => `array('controller' => 'Controller Name', 'action' => 'deleteBasket', $plaque['id']))); ?>`
<?php echo $this->Form->submit(arrray('class' => 'btn btn-danger', 'value' => '<i class="icon-trash icon-white"></i>', 'escape' => false, 'onclick' => 'confirm('Are you sure you want to continue')')); ?>