1

セッションカードのフォームがあります。削除リンクを設定したいと思います。各行の最後にあるgetリクエストでそれを行うことができると思います。ただし、cakephp 2 ..では、postリクエストを使用する方がよいことを「提案」しています。

それで大丈夫です :

<?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 ?'
                         ));
?>

ただし、このコードを使用すると、フォーム内にフォームが生成されるため、送信すると失敗します。これを列の外に出すことはできません。何か案は ?

4

3 に答える 3

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が必要です。

ドキュメントの引用:

inline-関連付けられたフォームタグをインラインで出力するかどうか。falseに設定すると、フォームタグが「postLink」ビューブロックに追加されます。デフォルトはtrueです。

block-フォームタグを追加するカスタムブロックを選択します。このオプションを使用すると、インラインオプションが上書きされます。

(はい、それは古いトピックですが、私はこれが同じ問題を研究しているのを見つけたので、答えを更新したほうがいいでしょう...)

于 2015-12-27T14:29:42.363 に答える
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')')); ?>
于 2015-08-22T20:10:21.680 に答える
-2

ドキュメントを読む、http://api20.cakephp.org/class/form-helper#method-FormHelperpostLink

This method creates a <form> element. So do not use this method inside an existing form. Instead you should add a submit button using FormHelper::submit()
于 2012-07-27T09:52:29.410 に答える