- ベストアンサー
外部ファイルで定義されているjqueryのユーザ定義関数を、イベントなしにphpで呼び出したい
- jqueryのユーザ定義関数を、イベントなしにphpで呼び出す方法を教えてください。
- フォームからPOSTで受け取った値を使用して、jqueryのユーザ定義関数をphpで呼び出す方法を教えてください。
- ページ内で何度も呼び出す必要がある場合、クリックイベントを利用せずにjqueryのユーザ定義関数をphpで呼び出す方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>コードの途中でbodyタグが再びでてきてもよいものなのでしょうか? ダメです。申し訳ない。かえってややこしくしてしまいました。<body の件は忘れてください。 >alertが実行されることなくページが表示されるだけでした 簡単に作成したこちらでは出来ているのですが…。 jQuery.jsのどこに記述したのかも気になりますが、以下ではどうでしょうか。 if($_POST['submit']){ $value = $_POST['submit']; echo <<<EOL <script> \$(document).ready(function(){ funcTest('$value');}); </script> EOL; } PHPとJavaScript両方をいじっていると混乱するかもしれませんが、 「JavaScriptは、HTMLタグの一種」と考えれば分かりやすいと思います。 PHPで HTMLタグをecho するようにJavascriptを出力するといいです。
その他の回答 (2)
- JaneDue
- ベストアンサー率75% (263/350)
>元々は~ の書き方でもOKですよ。ただ質問者さまの場合、 ・一番最後のカッコ ) の閉じ忘れ ・function を定義しているだけで実行してはいない のでできなかったのでしょう。 元々の方法で書くなら $(function(){ function funcTest(msg){ //関数を定義しているだけ alert(msg); } funcTest("これで実行される"); }) となります。 ※PHPで出力なさる場合は、$マークは変数とみなされないよう、適宜 \$ としてください。
お礼
補足へのご回答ありがとうございます jquery.jsで定義して、phpで呼び出せば実行できるのだと思っていました・・・ 定義だけでなく実行もしないといけないのですね・・・
- JaneDue
- ベストアンサー率75% (263/350)
jQueryは JavaScript ですよね。PHPとはまったく別の言語ですから、 PHPでJavaScriptの関数を使用することは不可能ですよ。 ただ、 >フォームからPOSTで受け取った時にだけ関数を呼び出したい のであれば、PHPで判定後、JavaScriptとして書き出してやればよいでしょう。 if($_POST['submit']){ $value = $_POST['submit']; echo "<script> funcTest('$value'); </script>"; } あるいは echo $value ? "<body onLoad=\"funcTest('$value')\">" : "<body>"; とか
お礼
ご回答ありがとうございます やはり無理なんでしょうか・・・ 教えていただいたコードをそのまま書いてみたのですが、alertが実行されることなくページが表示されるだけでした phpファイルのヘッダ部に function funcTest(msg){ alert(msg); } とした所、2つ目のコードでalertが実行されましたがこれはjqueryではなくただのjavascriptですし・・・ これはふと思ったのですが、2つ目のコードで <body onload ・・・ としていますが、コードの途中でbodyタグが再びでてきてもよいものなのでしょうか?
お礼
再びのご回答ありがとうございます おかげさまで無事関数を呼び出すことができました >jQuery.jsのどこに記述したのかも気になりますが、以下ではどうでしょうか。 元々は、 $(function(){ function funcTest(msg){ alert(msg); } } と書いていました 教えていただいたコードをこの状態で使ってみたところまたしてもできなかったのですが、 $(function(){} の外にfuncTest()を出したらうまくいきました ちなみに、前回の回答の1つ目でもalertが表示されました jQuery.js内で定義した関数を使う分には$(function(){}内に定義していても使えたため、そういうものなのだと思い使っていたのですが、外に出したらうまくいったということは外部で使う分にはこういった書き方は駄目なのでしょうか・・・ いずれにせよ、これでプログラムの作成を進めることができそうです 大変勉強になりました。ありがとうございました