• 締切済み

php内でjsを実行させたい

いつもお世話になっております。 今回、下記の事を実行しようと思って苦戦してます。 (1)DBのレコードが0の場合にelseの処理を実行 (2)else内でエラー文が入っている変数を確認する→これは単純に一文があるかを目で確認 (3)上記の変数を外部ファイルのjs側に変数を渡す (4)空でない変数かを条件分岐で確認してアラートを発生させる 悩んでいる部分は(3)の部分で中々見つからないのでどなたか教えて頂けますでしょうか。 if(省略) { (省略) } else { $title = "タイトルが未記入のままのようなままなので登録してください"; ★外部ファイルのjsを実行させる }

  • PHP
  • 回答数4
  • ありがとう数0

みんなの回答

  • tracer
  • ベストアンサー率41% (255/621)
回答No.4

#1です。 予想した回答と違ったので少し戸惑いましたが、たくさんある候補の中からもっとも単純な提案をします。 おそらくそのPHPは、最終的にhtmlを出力しているものと思われます。 そのhtml出力時に、javascriptでグローバル変数として扱えば、外部javascriptでも参照できます。 main.php ------ <?php // php側でflgを設定(たとえばDBの結果など) $flg = true; ?> <!DOCTYPE html> <html> <head> <script> var flg = <?php print $flg ?>; </script> <script src="example.js"> </head> <body> </body> </html> example.js ----------- alert(flg); 実際は、グローバル変数は取扱いが煩雑になるので、あまり使われることはないと思いますが、そちらのファイル構成などが分かりませんので、ひとまずの一案として提案します。

  • tracer
  • ベストアンサー率41% (255/621)
回答No.3

#1です。 質問に対して質問を返して申し訳なく思います。 ただ、前提を整えないと前に進まない状況だということをご理解ください。 私が差し上げた質問は次の3択です。 1. phpからjavascriptを出力する法がわからない 2. javascriptの書き方そのものがわからない 3. そのどちらもわからない まず、この3択以外の選択肢はないことをご理解ください。この3択に答えられないということは、つまり、「何がわからないのかわからない・説明できない状態」です。なぜなら、#2さんも回答されていますが、『★外部ファイルのjsを実行させる(PHP内からjavascriptのファイルを実行させる)』ということは、そもそもできないからです。 よく知られるように、webページは主に、html/css/javascriptで構成されます。その上でphpが何を担っているのかというと、動的にhtml/css/javascriptを出力するということです。つまり、phpを使って、結果としてhtml/css/javascriptを出力しているわけです。もう少し具体的に言うなら、質問内容の目的を達成するには、「phpを使ってjavascriptを出力する」以外にないということになります。その上で私が投げた3択について考えてみてください。

sato965
質問者

補足

ご回答ありがとうございます。 お手数おかけして大変申し訳ございません。 選択肢だと『1. phpからjavascriptを出力する方法がわからない』のみです。 2と3さんは当てはまらないので。

回答No.2

PHPはサーバー側で実行されますが、JavaScriptはブラウザ側で実行なので PHPから直接JavaScriptの実行を呼び出すことはできませんので ブラウザ側でのなにがしかのイベント使って それをキックにして特定のJavaScriptを実行することになります。 (1) PHPで、JavaScriptを生成し、これを HTMLの一部としてブラウザに送る  (PHP側での条件分岐でJavaScirptの内容を可変にする) (2) ブラウザにHTMLが送られ終わったときに、(1)のJavaScriptを実行するように HTML内でイベント定義を行っておく。 ということになります。 (1)の方法は 既に解決されたということですので、 (2)に関しては 、 window.onload = function() { (1)の内容(つまり 変数定義やalertの実行) }; というJavaScriptを生成するPHPを作れば、よいでしょう。

  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

phpからjavascriptを出力する法がわからないのか、javascriptの書き方そのものがわからないのか、どちらでしょうか。それともどちらもでしょうか。やりたいことを設定した後は、それを達成するための課題を明確に設定してみてください。逆に言えば、それが明確でないと人に理解してもらうのは困難でしょう。いわゆる「何がわからないのかわからない・説明できない」状態になっているのではないでしょうか。

sato965
質問者

補足

ご回答ありがとうございます。 個人的には説明をしたと認識しておりましたが、申し訳ありません。 PHPの変数の中身をjavascriptの変数に格納するプログラムは書き終わりました。 ただ肝心の『★外部ファイルのjsを実行させる(PHP内からjavascriptのファイルを実行させる)』の一文が分からず、処理を実行できておりません。 お手数ですが、ご回答頂けると幸いでございます。

関連するQ&A

  • js ファイルの読み込み

    ●質問の主旨 jsファイルを読みこむためHTMLファイルを記述しましたが 読み込めません。記述が間違っているのでしょうか? それともjsファイルの格納場所がおかしいのでしょうか? JavaScriptは3日前にはじめたばかりの超初心者です。 ごぞんじのかたご教示願います。 ●ファイルの配置 jsファイル、HTMLファイルともに GoogleDrive→JavaScript(任意のフォルダ名)に格納 ●jsファイルの内容 var now = now Date(); var greeting; if(now.getHours() < 12 ) greeting = 'おはよう'; else if(now.getHours() < 18 ) greeting = 'こんにちは'; else greeting = 'こんばんは'; ●HTMLファイルの内容 <HTML> <HEAD> <TITLE>JavaScriptサンプル</TITLE> <SCRIPT language = "JavaScript" src = "file.js"></SCRIPT> </HEAD> </BODY> <SCRIPT language = "JavaScript"> <!-- alert(greeting); // --> </SCRIPT> </BODY> </HTML>

  • Javascriptの中に外部jsファイルを呼び出したい。

    入力フォームで都道府県などのたくさん項目がある プルダウンメニューやセレクトボックスを外部化し jsの中には document.write('<option value="1">北海道</option>'); document.write('<option value="2">青森</option>'); document.write('<option value="3">岩手</option>'); document.write('<option value="4">宮城</option>'); などとし、ファイル名は「todou.js」としました。 セレクトボックスの外部ファイルは document.write('<option value="1">インターネット</option>'); document.write('<option value="2">テレビ</option>'); document.write('<option value="3">新聞</option>'); などとし、外部ファイルは「kikkake.js」としました。 htmlのところには <tr><td>都道府県:</td> <td><select> <script src="select1.js"type="text/javascript"> </script> などとし、載せることはできました。 しかし、最後に送信ボタンを押した時に 確認するためにアラートで選択したものを出したい時に どうやって呼び出したらよいのでしょうか? 色々調べてみたらまず <script language="JavaScript" src"todou.js"></script> とすると書いてありました。 しかし複数の外部ファイルを呼び出すためにはどうしたら よいのでしょうか? あとアラートで確認するために function Check(){ var myTodou = document.myForm.src"todou.js".value; alert('都道府県:' + myTodou); とするのでしょうか? 不備部分がありましたらご指摘ください。 どうかよろしくお願いします。

  • alert()が実行できない

    JavaScriptについての質問です。 何故か、jsファイルにてalert()が実行できなくなりました。 alert("aaa"); と記述した「test.js」ファイルを作成して実行すると、 「オブジェクトを指定してください」とエラーメッセージが表示されます。 しかし、 <script type="text/javascript"> alert("aaa"); </script> と記述した「test.html」ファイルを作成して実行(IE7)すると、 エラーは表示されず、意図したとおりアラート画面が表示されます。 どうしてこのような現象が起こるなのか全く分かりません。 解決策をご存知の方は、教えていただけないでしょうか。

  • node.jsのシェル上で

    コンソール上でnodejsを起動してシェルとしてつかった場合 var x="グローバル変数"; console.log(x); //とするとグローバル変数と出力されます。 さらに console.log(this.x); //とするとグローバル変数と出力されます。 そもそもグローバル変数とはトップレベルコードにおけるオブジェクトのプロパティとあります。 ブラウザだと、トップレベルのスコープで定義した変数は alert(window . variable); でアクセスできます。 ですから、nodeコンソール上で xとっ宣言した変数がthis.xとトップオブジェクトとしてアクセスできることはわかったのですが これをコンソールではなく、jsファイルに描いてそれをnodeコマンドで実行した場合 ~$ node test.js といった具合に実行させた場合 どうも、undefindeと表示されてしまうのです。 これは何が原因でundefinedと出力されてしまうのでしょうか?

  • jsファイルをhtml内で実行したい

    広告を入れ替えるjavascriptファイルがネット上で公開されているのですが それを使うにはjsファイルをダウンロードしてからサーバーにアップして、別途、htmlに実行させる記述を行えと書いていまして それは解説どおりにやればできたのですが、 この度、事情により、そのjsファイルを外部ファイルとしてではなく、html内に組み込みたい(組み込まなければならなくなった)のですが 素人でも簡単にできますか? jsファイルをメモ帳で開いてコピペして、実行する記述を追加すれば作動しますか? もし答えがYESなら実行する記述もご教示願います。 jsファイルの内容は次のとおりです。 function rotationAdv() { m = 0, x = 0, y = 0; ad = new Array(); adv = new Array(); hit = new Array(); // 広告0 hit[0] = 1; adv[0] = '広告タグ'; // 広告1 hit[1] = 1; adv[1] = '広告タグ'; // 広告2 hit[2] = 1; adv[2] = '広告タグ'; for(i=0; i<=hit.length - 1; i++) { m += hit[i]; } n = Math.floor(Math.random() * m); n++; for(i=0; i<=hit.length - 1; i++) { x = y; y += hit[i]; if(x<n && n<=y) ad = adv[i]; } document.write(ad); } 困っております。よろしくお願いします。

  • 外部jsファイルの変数に代入するには?

    初心者ですがjavascriptについて質問です。 なんらかの値を外部ファイル内の変数に代入させることは可能なのでしょうか? うまく説明できませんが・・・ あるjsファイル内の文字をリンク先の外部jsファイル内の変数の中に入れたいです。 <例> abc.js の中にある文字列"○○○" ↓ abc.jaから <a href="xyz.js">にリンク ↓ xyz.js の中の var xxx ="○○○" に、したいのですが・・・説明が下手ですみません。 わかる方是非教えてください。

  • MS-DOSでのSQL実行について

    MS-DOSでSQLPlusを使い、select文などを実行しようと思うのですがソースコードの書き方がいまいち分かりません。 sqlplus ユーザ名/パスワード@データベース名 @実行したいSQLファイル1 if "%a%"==1( @実行したいSQLファイル2 ) else ( @実行したいSQLファイル3 exit というような形でソースを書いたのですがSQLのファイルが開かなかったりでうまく動きません。 SQLファイルの中身はselect文などで、 変数aはSQLの中でsetされる変数です。 どのように書けばうまく実行できるのでしょうか? また、参考になるサイトなどありましたら教えて頂けると助かります。 よろしくお願いします。

  • 外部.jsファイルを使用したものについて

    外部.jsファイルを読み込んで動きのあるものを作りたいと思っており、 様々なサンプルを試してはいるのですがなかなか上手く動作しません。 http://jsajax.com/EditRunDemo.aspx 上記のソースをコピーしてhtmlで保存。 jquery-1.2.6.jsをダウンロードし実行してみたのですが、 SlidePanelのオレンジの部分が表示されません。 http://interface.eyecon.ro/demos/windows.html また同じように上記のソースをhtmlで保存。 jquery.js、interface.jsをダウンロードし実行してみたのですが、 ウィンドウが表示はされても閉じるボタンや縮小ボタンなど、 周りの緑色の部分が表示されません。 特に1番目のものは外部ファイルは何も弄らなくても大丈夫 と書いてあるので、正常に動作しない理由が分かりません・・・ 使用ブラウザはFirefox2.0.0.17です。 初心者で申し訳ありませんが回答の方よろしくお願いいたします。

  • 外部jsファイルから本体の関数を呼ぶには

    外部jsファイルを読み込んで処理する以下の1の例のようなプログラムがありました。 外部ファイルを読み込む前に処理をスタートしているからか、 get()が見つからないとエラーがでる場合がありました。 1の例) ■index.html window.onload = function loaded(){ get('a'); } ■outer.js function get(a){ alert(a); } そこで2の例のように外部ファイルから本体の関数を呼ぶようにしましたが、 これは毎回オブジェクトが見つからないとエラーがでます。 2の例) ■index.html function loaded(){ get('a'); } ■outer.js function get(a){ alert(a); } window.onload = loaded(); そこで質問なのですが、1の例からエラーが無くなる様に外部ファイルを完全に読み込んだのを判断して処理を始めるというのはどういう風に書けばいいのでしょうか? もう一つ、2の例のように外部jsファイルから本体の関数を呼ぶにはどう書けばいいのでしょうか?(例では簡単に書いていますが実際は複雑で、本体をキックしたいのです) ぜひアドバイスを頂ければと思っております。宜しくお願い致します。

  • javascriptのalertで文字化けが解消されません。(外部js

    javascriptのalertで文字化けが解消されません。(外部jsファイル読込による) htmlファイル <meta http-equiv="Content-Script-Type" content="text/javascript"> <script language="JavaScript" src="**/**.js" charset="shift_jis"></script> いろいろ調べまして、charset="shift_jis"を指定したり、utf-8にしましたがうまくいきません。 jsファイル function testalert() { alert('テスト'); } ご教授をよろしくお願いします。

専門家に質問してみよう