めも。
FormHelper::postLink()メソッドを使用する。
サブミットボタンではなく、あくまでもテキストリンクのクリックをトリガーに値の送信を開始したい場合に便利。
■書式
$this->Form->postLink($title, $url, $options, $confirmMessage);
■引数詳細
プロパティ | 初期値 | 詳細 |
---|---|---|
$title | 省略不可 | リンクのタイトル |
$url | null | 値のサブミット先URL。Router::url()と同一のフォーマットで指定 |
$options | array() | フォームオプションの他、array(‘data’)が使用可能 |
$confirmMessage | false | 文字列を指定すると、確認メッセージとして出力してくれる |
FormHelper::postButton()と似ているが、こちらはボタンではなくリンクである点が特徴。同時にJavascriptが生成され、ポスト自体はJavascriptによって行われる。postButton()メソッドと同様、$options[‘data’]にフォームからの値を渡すことでhiddenにて値を保持してくれる。
例えば以下のようなコードで。
<?php echo $this->Form->postLink('Submit', array('controller' => 'Hoges', 'action' => 'complete'), array('data' => $data)); ?>
※第三引数array(‘data’)の形式はpostButton()メソッドをまとめた際のエントリを参照されたし。↓
【CakePHP2.3】単独動作するサブミットボタンを出力する。
このようなHTMLが出力される。
<form action="/designs/test" name="post_524bb0f13ae60601421806" id="post_524bb0f13ae60601421806" style="display:none;" method="post"> <input type="hidden" name="_method" value="POST"> <input type="hidden" name="data[name]" value="hoge"> <input type="hidden" name="data[password]" value="fuga"> <input type="hidden" name="data[url]" value="http://google.com"> </form> <a href="#" onclick="document.post_524bb0f13ae60601421806.submit(); event.returnValue = false; return false;">Submit</a>