- ベストアンサー
PHPからjavascriptを呼び出したいの
1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 いつも質問に答えてくれてありがとうございます。 PHPからjavascriptを呼び出したいのですが、 どのようにして書けばいいのか 分かりません。 --------------------------- <script type="text/javascript"> <!-- <?php ・ ・ ・ print("<tr onclick='setBGCOLOR(this)'>"); ・ ・ ・ ?> var oldRow; function setBGCOLOR(r){ if(oldRow!=null)oldRow.style.backgroundColor="#FFF";//WHITE oldRow=r; r.style.backgroundColor="#3FF";//薄いBLUE } //--> </script> このプログラムは、他の質問を参考にして テーブル上でカーソルをのせると その行の色が変化するものです --------------------------- これですと エラーは出ませんが データが表示されません。 ご教示して頂けたら幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こういうものは、PHPでこねくり回さない。 PHPでやる必要があるのは、tableにclassをつけてやる程度。 以下例です。 //hoge.php <html> <head> <link rel="stylesheet" type="text/css" href="hoge.css" /> <script type="text/javascript" src="hoge.js"></script> </head> <body> <?PHP print <<<eof <table class="hoge"> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> </table> <table class="fuga"> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> </table> <table class="hoge"> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> <tr><td>test</td><td>test</td><td>test</td><td>test</td></tr> </table> eof; ?> </body> </html> //hoge.js window.onload=function(){ setHogeTable(); } function setHogeTable(){ var tables=document.getElementsByTagName("table"); for(var i=0;i<tables.length;i++){ if(tables[i].className=="hoge"){ var trs=tables[i].getElementsByTagName("tr"); for(var j=0;j<trs.length;j++){ trs[j].className="c3ff"; trs[j].onmouseover=function(){ this.className=this.className=="c3ff"?"cfff":"c3ff"; } trs[j].onmouseout=function(){ this.className="c3ff"; } } } } } //hoge.css tr.c3ff{ background-Color:#3FF; } tr.cfff{ background-Color:#FFF; } ※実際にはもう少し複雑な仕組みを作った方がよいですが 基本的にはクラスごと変えてやるので、cssファイルを いじるだけでいろいろ見え方を変えることができます
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
クライアント側のOSとブラウザの種類、バージョンなど補足が必要。 Win版のIE6とfirefox2では動きましたが・・・
お礼
ご返事有り難うございました。 IEは6です。 色々と試してみたのですが・・・。 さらに確認してみます。
- shimix
- ベストアンサー率54% (865/1590)
「phpから(JavaScriptを)呼び出す」という表現はちょっとあり得ないです。あくまでもJavaScriptはクライアント(ブラウザ)が解釈して実行するものです。 この例でいうと、phpがブラウザに返した内容(ブラウザのソース表示で確認できますよね?)がどうであるか次第ということです。ブラウザでのソースを確認してください。 >データが表示されません。 データはもちろん、その以外の(htmlとしての)ほとんどの部分が省略されているので、このソースだけでは何とも言えません。ただ、 >テーブル上でカーソルをのせると であれば、onClickでなくonmouseover/onmouseoutを使うべきでは?
お礼
こんにちは。 >であれば、onClickでなくonmouseover/onmouseoutを使うべきでは? そうなんですね とても参考になりました。
- inu2
- ベストアンサー率33% (1229/3720)
>PHPからjavascriptを呼び出したいのですが、 「呼び出す」の定義が曖昧でなんとも言いがたいのですが、 私が理解したあなたの「呼び出す」とは、PHPからJavaScriptを動かして背景色を変更する。 のように理解します PHPはあくまでもサーバー内でのみ動作します JavaScriptはあくまでもブラウザ内(PC内)でのみ動作します PHPからJavaScriptを呼び出すことは不可能です PHPを利用して、動的にJavaScriptを生成することは可能です
補足
こんにちは。 大変に参考になりました。 >私が理解したあなたの「呼び出す」とは、PHPからJavaScriptを動かして背景色を変更する。 仰る通りです。 >PHPを利用して、動的にJavaScriptを生成することは可能です そうなんですね 動的に生成というのは どのようにするのでしょうか? とても厚かましく恐縮ですが ご教示して頂けたら幸いです。
補足
ご返事有り難うございました。 大変に参考になりました。 hoge.php hoge.js hoge.css の3つのファイルをコピペして作成しました。 「hoge.php」を開くと test test test test test test test test test test test test test test test test の羅列は表示されますが カーソルをのせてても色が変化しないのですが・・・。 なにか私のやり方に問題があるのでしょうか?