CakePHP2.5.4でjQuery読み込み場所について
まだドットインストールのCakePHP入門やってます。
ajaxで記事削除するうんぬんのところでどうにもうまく動かない。PHPでエラーは出てないから多分JSの箇所が悪いんだろうと思って見なおしてみても原因がよく分からない。(そもそもドットインストールのコードを写経してるだけだし…)
最終的にどこが悪かったかというとView/Layouts/default.ctp
に書いたjQueryの読み込み場所でした。最近JSはbodyタグ終了直前に書くのがよろしいというのは聞いていたので、jQueryの読み込みもbodyタグ終了直前に書いていました。ドットインストールではjQueryの読み込みだけheadタグ内に書いていて、なんでだろぉなぁ^q^と思いつつも深く考えずbodyタグ終了直前に書いちゃってたのが原因だったっぽいです。
View/Layouts/default.ctp
<head> <?php echo $this->Html->charset(); ?> <title> <?php echo $title_for_layout; ?> </title> <?php echo $this->Html->meta('icon'); echo $this->Html->css('cake.generic'); echo $this->fetch('meta'); echo $this->fetch('css'); echo $this->fetch('script'); ?> <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> ← ちゃんとhead内に書いたら動いた。 </head>
View/Layouts/default.ctp
のbody内の<?php echo $this->fetch('content'); ?>
でコンテンツを読み込んでるっぽいので、コンテンツ内でjQuery使ってる場合その前に読み込まないとダメよって話だと思います。たぶん。