• 締切済み

HTMLの外部jsのようなcgiファイルについて

はじめまして。かなりレアなケースになると思うのですが、すでにリリースしており、泣き寝入りする事態が起きまして、CGIの出力のところがわからなくて困っております。 1、あるHTMLをブラウザで開くと<head>内のCGIが実行される。 <script language="JavaScript" type="text/javascript" src="○○.cgi"></script> 2、このCGIが実行されるとMySQLのデータを取得し、HTMLでデータを取り扱えるよう、取得した値をJavaScriptの配列の形式に加工され、「Temporary Internet Files」に○○.cgiが保存されます。 var 配列A=new Array(); 配列A[0]="0000001,名前,住所"; 配列A[1]="0000001,名前,住所"; ※○○.cgiを開くと右のような配列の表記が記載されている。 3、このHTML内で、上記の配列をJavaScriptで呼び出せば、Temporary Internet Filesに保存されたcgiファイルのデータ(配列形式の)が表示されるので、まるで外部JSの配列を扱っているかのようにDBのデータを取得することができます。 mysqlのデータを取得した後、CGIでHTMLに吐き出すぐらいはわかるのですが、 画面上に表示させるのではなく、外部JSなら普通どこかサーバにあるJSファイルを見にいくと思うのですが、Temporary Internet Filesに保存され、それが値として操作できるところです。 このCGIの出力の記述がまったくわからないので困っております。 わかりにくい文章で本当に申し訳ございません。どうかよろしくお願いします。

  • CGI
  • 回答数2
  • ありがとう数0

みんなの回答

  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.2

(1)PHPが動作する(2)PHPのDBモジュールをアップできる(3)jQueryでもよい という3つの条件がクリアできればAjaxで同じことを再現することは可能だと思います。 具体的には下記のようなソースになります。 呼び出しているMySQLへのアクセス部分とテーブル内の項目を変更すれば動くはずです。 ▼html(JavaScriptはbody内に書く※headに書く場合はfunction以外をonloadで記述) <div id="search_data"></div> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> var search_msg_data; $("#search_data").html('Now Loading...'); $.ajax({ type: "GET", url: "hoge.php", // 呼び出すphp success: function(msg){ search_msg_data = msg; setTimeout('search_json()', 1000); } }); function search_json(){ var get_json = eval("("+search_msg_data+")"); if(get_json.results == null){ $("#search_data").html("該当するデータは見つかりませんでした。"); } else{ var hash = get_json["results"]; var search_html = ""; for(var i in hash){ search_html = search_html + '<li><a href="#"><b>' + hash[i].name + '</b>' + hash[i].address + '</a></li>'; } $("#search_data").html(search_html); } } </script> ▼php <?php require_once("DB.php"); $dbUser = "ユーザー名"; $dbPass = "パスワード"; $dbUserPass = $dbUser . ":" . $dbPass; $dbHost = "mysql.xxxxx.ne.jp"; // ホスト名 $dbName = "データベース名"; $dbType = "mysql"; $dbTable = "テーブル名"; // データベース接続 $db = DB::connect("$dbType://$dbUserPass@$dbHost/$dbName"); if (DB::isError($db)){ die($db->getDebugInfo()); } // クエリ発行 $sql = "SET NAMES utf8"; // UTF8の場合 $result = $db->query($sql); $sql = "SELECT * FROM `$dbTable` ORDER BY name LIMIT 0 , 100"; // SQL文発行 $result = $db->query($sql); if (DB::isError($result)) { die ($result->getDebugInfo()); } $i=1; while ($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)){ // テーブルの中身がidとnameとaddressの場合 $array_data[strval($i)] = array( "id" => $rs['id'], "name" => $rs['name'], "address" => $rs['address'] ); $array_data_html = "<li>{$rs['id']}:{$rs['name']}:{$rs['address']}</li>\n"; $i++; } $array_all = array( "results" => $array_data); print json_encode($array_all); // JSON出力 @$result->free(); $db->disconnect(); ?>

回答No.1

質問が難解なので、合っているかわかりませんが。 要は「Webブラウザからローカルファイルにアクセスしたい」と理解しました。 一般的でないですが、ファイルAPIを使うとローカルファイルにアクセスできるようです。 http://ascii.jp/elem/000/000/559/559105/

buuuko_001
質問者

補足

お忙しいところ、回答していただき誠にありがとうございます。 今回、対象のHTMLファイルは、IE6以上で正常に動作するようになっており、 Firefox(ちなみに3.6)でページを確認すると、吐き出されたCGIのデータをうまくHTMLで取り込めないようで、値の出力が真っ白になってしまいます。 ファイルAPIの対象は「Firefox 3.6 / 4β Google Chrome 6 」のようですのでごめんなさい。これだと違うようです。

関連するQ&A

  • 外部呼出しのjsファイルについて

    外部呼出しするファイルを直接HTML内に記述したいのですがどのようにしたらよいのかわかりません。 ご存知の方がいましたらお教えください。 通常の方法は分かるのですが... <script LANGUAGE="javascript" src="xxx.js"></script> このような形で記述したいです。 <script LANGUAGE="javascript"><!-- src="xxx.js"; //--> </script>

  • 外部 js ファイルの動的読み込み

    通常、HTML で外部の Javascript ファイルを読み込む必要がある場合、 <script type="text/javascript" src="****.js"></script> としますが、これを Javascript のコード内で行いたい場合、何か方法はあるでしょうか? いわゆる、Perl での use や php での require のようなことを Javascript で実現したい - 動的に js ファイルを読み込みたいのです。 以上、お分かりになる方、よろしくお願いします。

  • HTML内記述と外部jsファイルの違い

    JavaScript初心者です。 HTML中のとあるボタンを押したとき、二つのラジオボタン(radio1)の選択を変える処理をJavaScriptで試みています。 ■HTMLのフォーム記述(抜粋) <INPUT type="button" name="radio1" value="変更" onClick="setRadio1()"> ■同一HTML内に記述したJavaScript function setRadio1() { <!-- document.mainform.radio1[0].checked = true; //--> }</script> ↑これは問題なく動作する。 ■外部jsファイルに記述したJavaScript function setRadio1() { document.mainform.radio1[0].checked = true; } ↑ページエラーとなる。 なぜか外部jsファイルのJavaScriptに切り替えると「ページエラー」になってしまいます。 どの辺りが問題なのか見当がつきません。 何か気づきがありましたら、アドバイスをお願いします。 ※ちなみに外部jsファイルに記述してある他のJavaScriptは問題なく動作します。

  • 外部JSファイルの書き方で・・・

    午後にも同じ質問をしたのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1933867 訂正がありましたので、質問し直します。すみません。 外部JSファイルを作りましたが、なにも返してきません。 リンクにマウスが乗るとガイドメッセージが出るスクリプトと、雪が降るスクリプトを同じページに書いたのですが、ガイドメッセージには何の反応もなく、雪のほうはちゃんと動いていたので、てっきり呼び出しはできていると思い込んでいたのですが・・・ 雪のほうの外部ファイルのスクリプトを試しに削除してみたら、まだ動いていました・・・ なくても動くらしかったです。 外部ファイルの書き方を説明されているサイトさんから、簡単なスクリプトをお借りしてコピペしましたが、私がやるとどうしても動かないです。 ちなみに、スクリプトはこんなふうに書いています。 //<!-- 外部ファイル内--> function a() { alert("Oh!"); } <!-- HTML内 --> <head> <script type="text/javascript" src="フォルダ名/ファイル名.js"></script> </head> <body> <form> <input type="button" value="click" onClick="a()"> </form> </BODY> 私のファイルではウンともスンともいいません。 なぜだか見当もつきません。 どなたかお助けください・・・

  • 外部ファイル

    HTMLに、このような記述があり <script type="text/javascript" src="●●●.js"></script> 外に、「●●●.js」 というファイルがあります。 これは、「外部のjavascript」ファイルということでしょうか? また、この、「外部のjavascript」ファイルを開く(見る)には、どうしたらいいのでしょうか? ^^ どこか、おすすめのjavascriptのサイト、ご存知でしたら、教えてください。。。^^ (CSS外部ファイル。までは意味、わかるのですが、 javascript の関係はよくわかりません)

  • jsファイルで配列を定義し、jsファイルを切りかえて使う

    お世話になります。 jsファイルで配列を定義し、その配列の内容を表示しています。 いくつかのjsファイルで配列を定義し、そのjsファイを切りかえることにより、表示する配列の内容を切りかえることはできないでしょうか。 例えば data_a.js DataAry = new Array( new WNData('2006/11/10','ああ','・・.html'), new WNData('2006/11/10','いい','・・.html'), ・・・・・ ); data_b.js DataAry = new Array( new WNData('2006/11/10','aa','・・.html'), new WNData('2006/11/10','bb','・・.html'), ・・・・・ ); dspDataAry.jsで function WNData(Date,Cmnt,Href,Target){ this.Date=Date; this.Cmnt=Cmnt; this.Href=Href; } function DspData(){ strhtml="・・・・ (DataAryを表示するhtmlを作成) return strhtml; } dspDataAry.htmlで <script type='text/javascript' src='dspDataAry.js'></script> <script type='text/javascript' src='data_a.js'></script> <body> <script type='text/javascript'><!-- document.write DspData(); //--> </script> <input id="btn_b" type="button" value="bを表示" onClick="bを表示する関数"<br> </body> とすれば、data_a.jsの配列の内容が表示されます。 ボタン「bを表示」を押すことにより、 data_b.jsを読み込んで、その内容を表示するようにできないものでしょうか。 onClick="bを表示する関数"この「bを表示する関数」をいう関数をどのように書いたらよいのかわかりません。 data_a.js、data_b.jsで定義する配列名は同じとします。 data_c.js、data_d.js・・・といくつかに分けたく思っています。 前もってdata_b.jsを読み込むのでなく、必要に応じて読み込んで表示するようにしたいのですが。 よろしくお願いいたします。

  • JSの外部ファイルの書き方を教えてください

    よろしくおねがいします。 私は初心者で技術者ではないですが、JavaScriptの項目はここだけのようなので質問させてください。 とある無料配布しているサイトからお借りしたもので、リンクにマウスが乗ると説明文がでるガイドメッセージのJSです。 外部ファイルはまた別のサイトで説明されていたとおりに書きました。 ほかのJSはそれで正常に動きましたが、このガイドメッセージだけはなぜか動きません。 サンプルではすべてHTML内に書いてありましたが、その通りにすると正常に動きます。 外部にするときはどこか変える場所があるのでしょうか・・・??? 自分はこんなふうに書いたのですが・・・ (外部ファイル内) function showMsg (text) { if(!document.getElementById) return; var msgbox = document.getElementById("msgbox"); msgbox.innerHTML = text; } (HTML内) (HEAD内) <script language="JavaScript" src="ファイルURL"></script> (body内) <a href="ファイルURL" onmouseover="showMsg('リンクの説明');" onmouseout="showMsg('いらっしゃいませ');">リンク文字</a> (リンクを表示させる場所) <p id="msgbox" lang="ja"> いらっしゃいませ</p>

  • HTMLファイルと分ける場合について

    JavaScriptを script.js として保存し、 完全にHTMLとJavaScriptを分けたいです。 script.js の中には関数が複数存在しています。 script.js の中では、それらの関数が使われていないです。関数があるだけです。 そこで、 <script src="script.js"type="text/JavaScript"/> などとした場合関数に引数を渡し実行することはできないですよね? パラメータというか、そういうことはできないですか?

  • 外部JSファイルが読み込まない。

    javascriptの勉強をし始めて、二日目の初心者です。 jsファイルを使って、画像をIEで表示させたいのですが、上手く読み込んでくれません。 どうか、教えてください。 ---html----------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4,01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="common.js" type=text/javascript" charset="UTF-8"> </script> <script src="showImage2.js" type="text/javascript" charset="UTF-8"> </script> <title>キャラクターの表示</title> </head> <body onlaod="main()"> <noscript>JavaScriptを有効にしてください</noscript> </body> </html> ----js------------------------------------------------------------------------------ var img; function main() { img=document.createElement("img") document.body.appendChild(img); img.src="pcStay.png"; } ------------------------------------------------------------------------------------

  • C# jsファイルの扱い方

    VS2005 C#を使用しているものです。 javaScriptのみで記述したhtml(BODY内部にスクリプトだけ記述した)をフォーム(ここではform2とします)のwebbrowserで表示するようなものを作ろうとしています。 form2にはスクリプトに渡したい文字列の配列と数値データがあり、別でjsファイルにスクリプトの雛形があるのですが、どのようにして値をform2からjsファイルに渡せばよいのか解らず困っています。 また下記に示したようなことは可能なのでしょうか?  form2でのボタン操作 ↓ jsファイルへ値を代入 ↓ jsファイルのソースをHTMLに埋め込み ↓ そのHTMLをform2のwebbrowserで表示 勉強不足で申し訳ないですが、ご教授願えれば幸いです。

専門家に質問してみよう