- - PR -
PHP+javascriptのwindow.open
1
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-29 02:53
こんばんは。
どうしても分からない事がありまして教えて下さい。 javascriptなのですが宜しいでしょうか? 実は、PHP4で、ブラウザの小窓(window.open)を行いたいのですが、方法が分かりません。 HTMLの場合では分かります。 ソースは(仮にsample.phpとします) -------------------------------------------------- function aaa() { # 一部省略 $image = "abc.jpg"; <a href=\"javascript: window('$image')\">クリック</a>\n"; } -------------------------------------------------- function aaa()にjavascriptのwindow.openを記述しています。 次にfunction head() にwindow.openのスクリプトを記述しています。 それが以下です。 -------------------------------------------------- function head() { # 一部省略 <script language="javascript"> function window(image) { window.open("image","","WIDTH=200,HEIGHT=300"); } </script> } -------------------------------------------------- このように、PHPの function head() に function aaa()からの <a href=\"javascript: window('$image')\">クリック</a>\n"; imageを送る方法が分かりません。 function head($image) {} として function window($image) ではなりませんでした。 どうして、データを渡せばいいのでしょうか? 宜しくご教授下さい。お願い致します。 | ||||||||||||
|
投稿日時: 2004-04-29 13:06
これは、PHPとJavaScriptの問題ですよね。
まず、 $image = "abc.jpg"; <a href=\"javascript: window('$image')\">クリック</a>\n"; ここの部分なのですが、実際にどういうソースになっているのでしょうか? 本来なら、 a タグの記述は、PHPのprint か echo か何かで出力しているように 見えるのですが、(最後に \n"; がついているので・・・・) その部分まで省略しているのでしょうか? でも、この書き方だととても中途半端な記述ですね。 $image が、PHP記述内で、記述されていればいいのですが、 そうでないと、変数名のつもりが、単なる文字列に解釈されてしまいます。 まず、そのあたりが実際にどうなっているのかわかりません。 あと、window.open("image","","WIDTH=200,HEIGHT=300"); の部分ですが、image の部分の " はつけてはいけないと思います。 window.open(image,"","WIDTH=200,HEIGHT=300"); という記述でいいはずです。 実際に、PHPから、JavaScript の関数に、変数を渡して、 Window を開くこともやっていますが、問題なく内容がわたっていますから、 a タグの部分が、PHP変数として、解釈されていないような気がします。 | ||||||||||||
|
投稿日時: 2004-04-29 14:42
こんなんじゃダメかね? [ メッセージ編集済み 編集者: コブラ 編集日時 2004-04-29 14:44 ] | ||||||||||||
|
投稿日時: 2004-04-29 23:22
みなさんありがとうございました。
コブラさんの言われる <html> <head> <META http-equiv="Content-Script-Type" content="text/javascript"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC_JP"> <title>小窓</title> この部分は、function head() { 内に記述していますので、function head() {に値を渡す方法がわかりませんでした。 hidemaruさんが言われるとおり、 window.open(image,"","WIDTH=200,HEIGHT=300"); とすることでできました。 ソースは、一部を抜き出していますが、以下のような感じです。
最初、 function aaa() {} 内の変数 $image を function head() {} へ渡すのにfunction head($image) {} としないと値が渡らないと思っていました。 ですが、function head() {} でも渡るのですね。 逆にfunction head($image) {}とすると以下のようにエラーがでました。 Warning: Missing argument 1 for head() in /home/***/public_html/sample.php on line 33 33行目は、function head($image) { の部分です。 常に$imageに値が来ないからかしら?・・・ とりあえず、小窓を表示することができましたのでホッとしました。 ご教授ありがとうございました。 また、今後とも宜しくお願いします。 | ||||||||||||
|
投稿日時: 2004-04-30 14:47
すいません、便乗質問になりますが、ご教示ください。
PHP勉強はじめたばっかりなもので、あたりまえのことを聞いているかもしれませんが。 EMIKO様が以下のように記述されているということなのですが、
この場合、関数head()の中身はどうなっているんでしょうか? そもそもこのような表記はアリなんでしょうか?
ここでphp部分が閉じられているので、その後のHTMLヘッダー部分はどういう扱いになるんだろうかと悩んでおります。 HTMLヘッダー部分をechoまたはprintで出力しているなら理解できるのですが。 申し訳ありませんがよろしくご教示いただければとおもいます。 | ||||||||||||
|
投稿日時: 2004-04-30 16:10
こんにちわ。お世話になってます。
可能ですよ〜。ここがPHPの便利なところだと思いますが
printやechoで出力しようとすると、シングル・クォーテーションやダブル・クォーテーションをいちいちエスケープする必要が生じますよね? そんなときは、こういう書き方を使うとHTMLをそのまま記述できるので重宝してます。 [ メッセージ編集済み 編集者: ゆう 編集日時 2004-04-30 16:17 ] | ||||||||||||
|
投稿日時: 2004-04-30 17:18
ゆう様ありがとうございました。
一応いろいろと実験して試してみました。 こういう表記でちゃんと関数の一部として認識されるんですねぇ。 勉強になりました。 | ||||||||||||
1
