dポイントプレゼントキャンペーン実施中!

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()' ">

アドバイスお願い致します。

A 回答 (3件)

表題の「質問:PHP内でJavaScriptの処理は可能?」


という質問には可能

文中の「PHP内変数 $flag をJavaScriptで参照し、条件処理を行っています。」
この文に対しては不可能です

PHPはアクセスされた瞬間にサーバ内だけで処理をして
クライアント側になにかしらの結果を出力するだけですので、JavaScriptでPHP内の変数を参照することは出来ません

JavaScript部分の
$flag
header('Location: ./error.html')
等の、PHP構文は無意味です


つまり、
PHPの処理でjavaScriptを生成しhtml内に埋め込むことはできますが、
javaScript処理でPHPを動かすことはできません
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/10/22 01:49

>表題にもあるように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で出力するものは単純にブラウザに表示されるものと思ってください。
    • good
    • 0

if($flag != '1'){


は、
if($flag != 1){
でいいんじゃないですかね。
あと
onClick='check()' ">

onClick='check()'></a>");
では?
あと、
"header('Location: ./error.html'); "+
"exit(); "+
の部分は、javascriptなんですか?
    • good
    • 0

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