• 締切済み

PHP内でJavaScriptの処理は可能?

PHP内変数 $flag をJavaScriptで参照し、条件処理を行っています。 JavaScriptの処理は onClick() のタイミングで行います。 ソースの概要は以下のようになります。 1.ログインしているか見る(flagでチェック、1はログイン中…) 2.flagのデータ取得、条件処理。 3-1. flagが1以外なら、true処理 3-2. flagが1なら、false処理  ・  ・ と、こんな処理を行いたいのですが…上手く出来ません。 ソースは以下になります。PHP側の変数 "$flag" までの取得は上手く出来たのですが、 JavaScript側の処理で、つまづいてます…。 で、表題にもあるようにPHP内でJavaScriptの処理は可能でしょうか? アルゴリズム的に、アドバイスなどありましたらご教授ください。 以下が主要部分のソースになります。 <?php echo("<script Language='JavaScript'> "+ "<!-- "+ "function check(){ "+ "if($flag != '1'){ "+ "return true; "+ "} "+ "else{ "+ "header('Location: ./error.html'); "+ "exit(); "+ "return false; "+ "} "+ "} "+ "//--> "+ "</script> "); echo(" <a href='test.html'><img src='botton.gif' onClick='check()' "> アドバイスお願い致します。

みんなの回答

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.3

表題の「質問:PHP内でJavaScriptの処理は可能?」 という質問には可能 文中の「PHP内変数 $flag をJavaScriptで参照し、条件処理を行っています。」 この文に対しては不可能です PHPはアクセスされた瞬間にサーバ内だけで処理をして クライアント側になにかしらの結果を出力するだけですので、JavaScriptでPHP内の変数を参照することは出来ません JavaScript部分の $flag header('Location: ./error.html') 等の、PHP構文は無意味です つまり、 PHPの処理でjavaScriptを生成しhtml内に埋め込むことはできますが、 javaScript処理でPHPを動かすことはできません

u-mesh12
質問者

お礼

処理方法を変えてみます。アドバイスありがとうございましたm(_ _)m

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

>表題にもあるようにPHP内でJavaScriptの処理は可能でしょうか? はい、可能です。 PHPで記述したものはサーバー上で処理をされて、 表示されているのは基本的にHTMLになります。 なのでJavaScriptがHTMLの中に入っていてもブラウザ側で 処理することが出来ます。 ==========================引用start <?php   echo("<script Language='JavaScript'> "+   "<!-- "+   "function check(){ "+   "if($flag != '1'){ "+   "return true; "+   "} "+   "else{ "+   "header('Location: ./error.html'); "+   "exit(); "+   "return false; "+   "} "+   "} "+   "//--> "+   "</script> ");   echo(" <a href='test.html'><img src='botton.gif' onClick='check()' "> =========================引用end まず、上記のPHPソースではサーバがわで処理したあとのソースを見てみたのですが きちんと表示されないです。 PHPで文字列をくっつけて表示する場合は"+"ではなく"."になります。 次に、推測ですがPHPの処理とJavaScriptの処理がアルゴリズムを考える際に ごちゃごちゃになっちゃっているのかなと思います。 JavaScriptの中にPHPの関数であるheader()を入れても動作しません。 header関数に関してはヘッダー出力を行う前に文字列があってはいけません。 echoで出力するものは単純にブラウザに表示されるものと思ってください。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

if($flag != '1'){ は、 if($flag != 1){ でいいんじゃないですかね。 あと onClick='check()' "> は onClick='check()'></a>"); では? あと、 "header('Location: ./error.html'); "+ "exit(); "+ の部分は、javascriptなんですか?

関連するQ&A