• 締切済み

PHP内でjsファイルの関数は使えないのでしょうか

こんばんは、Webページ制作の勉強で問題にぶつかり、少々お知恵をお借りしたく質問させて頂きました。 あるPHPファイルの中の <!doctype html> <html> //ここにHTMLの記述があるとします。 </html> のHTMLの記述の中に <script src="example_A.js"></script> <script src="example_B.js"></script> のような形で他のページでも使っているJavascriptのファイルを読み込んで使用しようとしたのですが、一部の処理だけが行われないようのです。 そこでjsファイルの中で使えない記述に共通点が無いか確認してみたところ、 $(function() {   //ここに処理 }); のように、関数のみが動作して居ない事が解りました。 そこで質問なのですが、PHPファイルの中では、<html>の中で記述されたスクリプトだとしても関数の中で記述された処理は使えないという事なのでしょうか? また、もしPHPの中でも関数を動作させる方法があれば、教えて頂けないでしょうか。 宜しくお願い致します。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

$(function() {   //ここに処理 }); 上記の「ここに処理」の部分だけが動いてないのであれば、jQuery 1.8.3というのを探してきて、 ~~~~~~~~ <!doctype html> <html> <head> <script src="jquery-1.8.3.min.js"></script> ←ここを追加 <script src="example_A.js"></script> <script src="example_B.js"></script> </head> //ここにHTMLの記述があるとします。 </html> ~~~~~~~~ という風に書き換えるとうまくいくかも知れません。ひょっとしたらjQueryではなくprototype.jsかも知れません。 jQueryは $(); が一つの関数(function)であり、それは「htmlの閉じタグまで読み込まれたらこの中身を実行する」という意味になります。 $(function() { alert("hoge");} ); と書くと、</html>まで読み込まれたらalert("hoge")が実行されます。このためにjQueryのjsライブラリをあらかじめ読み込んでおく必要があります。この関数の動作はbody.onLoadと似ていますが正確には違うものなので興味があれば違いを調べてみると良いでしょう。 jQueryは既に1.9や1.10どころかバージョン2まで出てるのになぜ今更1.8.3なのというご意見に対しては、単に私の好みなだけです。

noname#244856
noname#244856
回答No.1

結論から言うと、あり得ません。ブラウザ側からすると、HTMLファイルであろうとPHPファイルであろうとどちらも単なる「HTML」です。PHPはサーバー側で処理された後、完成されたHTMLをブラウザに対して送信します。 原因は他にあるはずです。

関連するQ&A