「ブログチュートリアル」をベースに進めていくと大変わかり易い。
そこにある「記事投稿の削除」では、GETリクエストで投稿を削除するのはWEBクローラが不要に削除するので危険であるとあるので、POSTリクエストによる削除を行うことにするが、記事の追加、投稿記事の編集のようにFormHelperをつかって、createからendまで書くのは手間である。
そこで、postLinkというものがあるのでこれを解析してみる。
echo $this->Form->postLink('Delete', array('action' => 'delete', $post['Post']['id']), array('confirm' => 'Are you sure?'));
を書き、実際にページを作成してブラウザ(※Google Chromeを使用している)で表示したところで、
”Delete”リンクで右クリックし、”要素の検証”をクリックするとブラウザの下部に要素(ソースの一部)が表示される。
上記のpostLinkの箇所が以下のようになっているのがわかる。
- <form action="/cakephp/posts/delete/5" name="post_537d6ddaf1adf620659485" id="post_537d6ddaf1adf620659485" style="display:none;" method="post”>
- <input type="hidden" name="_method" value="POST”>
- </form>
- <a href="#" onclick="if (confirm("Are you sure?")) { document.post_537d6ddaf1adf620659485.submit(); } event.returnValue = false; return false;">Delete</a>
その上で、4行目にて”Delete”としたaタグのonclickイベントで、先のformをsubmitするようになっている。
formのidは、自動で付加されているらしい。
また、postLinkでconfirmを指定しているので、確認ダイアログが出るようになっている。
0 件のコメント:
コメントを投稿