• ベストアンサー

PHPで外部関数での返値の取得の仕方について

はじめまして。PHPの勉強を始めたばかりの者です。 <?php 関数 ?> で、関数はJavaScriptで書いてあります。 --関数-- <script language="JavaScript"> function 関数(){ a = 計算; return a; } </script> としているのですが、関数がないとか返値がないみたいなエラーメッセージが表示されます。 どなたか詳しい方、ぜひご指導願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • stanaka
  • ベストアンサー率44% (13/29)
回答No.3

 時間がたっていますが・・・.  クライアントサイドで動作するJavaScriptとサーバサイドで動作するPHPは通信することが出来ません.  PHPがprint()文を実行してJavaScriptを含む文書を書き出し,その結果がブラウザにわたってブラウザがJavaScriptを実行し始めるときには,すでにサーバ側でのPHPプログラムの実行は終了しています.JavaScriptの結果をサーバ側に返したい場合は,新たにPHPプログラムをHTTPで呼び出し,POSTかGETで値を渡す必要があります.  一度読み込んだページをサーバ側のプログラムと通信しながらダイナミックに更新する技術はMicrosoftがVBScriptやJScriptとASPに対するオプションで提供していたと思いますが,PHPではこれに対応することは(おそらく)出来ないでしょう.

black_breath
質問者

お礼

ご指導ありがとうございます。 >一度読み込んだページをサーバ側のプログラムと通信しながらダイナミック >に更新する技術はMicrosoftがVBScriptやJScriptとASPに対するオプションで>提供していたと思いますが,PHPではこれに対応することは(おそらく)出来>ないでしょう. そうですか。多数の人々にご指導頂きありがとうございました。また、わからないことがありましたら質問させていただきます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

>>phpはcgiと同じくサーバサイドの機能です。 >>JavaScriptはクライアントサイドの機能です。 >は、わかります。が、イベントを拾って(onClickなど) >でのJavaScriptは可能ですよね?最初のほうにJavaScript >をprint("");で囲んで走らせ、その返値をPHPで分岐の条 >件として使用をしたいんです。 分かっていないに一票。 分かっていないからその質問がでるんです。 もう一度、「サーバーサイド」、「クライアントサイド」という言葉を、考えてみてください。

black_breath
質問者

お礼

ご指導ありがとうございます。 いまいちなんですが、 「サーバーサイド」→「クライアントサイド_1」→「サーバーサイド」→「クライアントサイド_2」という風にはできませんか? 「クライアントサイド_1」で変数を取得し、「サーバーサイド」で分岐し結果は「クライアントサイド_2」へと表示する は可能ではないんですか?

すると、全ての回答が全文表示されます。
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

サーバサイドの話とクライアントサイドの話がごちゃまぜになっていますね。 phpはcgiと同じくサーバサイドの機能です。 JavaScriptはクライアントサイドの機能です。 <script>~</script> 内の関数はあくまでJavaScriptの機能なので、phpから見れは単なるTAGと同じです。 つまり、ブラウザに読み込まれて初めて動作するものです。従ってphpがHTMLを出力している間(クライアントにデータを返している間)の制御はサーバ側なのでJavaScript内の関数は動作できません。 もう一度頭の中を整理して、サーバサイドなのかクライアントサイドなのかを区別しましょう。

black_breath
質問者

お礼

回答ありがとうございます。 >phpはcgiと同じくサーバサイドの機能です。 >JavaScriptはクライアントサイドの機能です。 は、わかります。が、イベントを拾って(onClickなど)でのJavaScriptは可能ですよね?最初のほうにJavaScriptをprint("");で囲んで走らせ、その返値をPHPで分岐の条件として使用をしたいんです。 ご指導願います。

すると、全ての回答が全文表示されます。

関連するQ&A