【CakePHP2.3】ポスト可能なテキストリンクを出力する。

めも。

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>