プロが教えるわが家の防犯対策術!

はじめまして。PHPの勉強を始めたばかりの者です。

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

A 回答 (3件)

 時間がたっていますが・・・.



 クライアントサイドで動作するJavaScriptとサーバサイドで動作するPHPは通信することが出来ません.

 PHPがprint()文を実行してJavaScriptを含む文書を書き出し,その結果がブラウザにわたってブラウザがJavaScriptを実行し始めるときには,すでにサーバ側でのPHPプログラムの実行は終了しています.JavaScriptの結果をサーバ側に返したい場合は,新たにPHPプログラムをHTTPで呼び出し,POSTかGETで値を渡す必要があります.

 一度読み込んだページをサーバ側のプログラムと通信しながらダイナミックに更新する技術はMicrosoftがVBScriptやJScriptとASPに対するオプションで提供していたと思いますが,PHPではこれに対応することは(おそらく)出来ないでしょう.
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。

>一度読み込んだページをサーバ側のプログラムと通信しながらダイナミック
>に更新する技術はMicrosoftがVBScriptやJScriptとASPに対するオプションで>提供していたと思いますが,PHPではこれに対応することは(おそらく)出来>ないでしょう.

そうですか。多数の人々にご指導頂きありがとうございました。また、わからないことがありましたら質問させていただきます。

お礼日時:2002/02/11 07:15

>>phpはcgiと同じくサーバサイドの機能です。


>>JavaScriptはクライアントサイドの機能です。

>は、わかります。が、イベントを拾って(onClickなど)
>でのJavaScriptは可能ですよね?最初のほうにJavaScript
>をprint("");で囲んで走らせ、その返値をPHPで分岐の条
>件として使用をしたいんです。

分かっていないに一票。
分かっていないからその質問がでるんです。
もう一度、「サーバーサイド」、「クライアントサイド」という言葉を、考えてみてください。
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。

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

お礼日時:2002/02/10 00:03

サーバサイドの話とクライアントサイドの話がごちゃまぜになっていますね。



phpはcgiと同じくサーバサイドの機能です。
JavaScriptはクライアントサイドの機能です。

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

もう一度頭の中を整理して、サーバサイドなのかクライアントサイドなのかを区別しましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>phpはcgiと同じくサーバサイドの機能です。
>JavaScriptはクライアントサイドの機能です。

は、わかります。が、イベントを拾って(onClickなど)でのJavaScriptは可能ですよね?最初のほうにJavaScriptをprint("");で囲んで走らせ、その返値をPHPで分岐の条件として使用をしたいんです。

ご指導願います。

お礼日時:2002/02/07 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!