はじめまして。かなりレアなケースになると思うのですが、すでにリリースしており、泣き寝入りする事態が起きまして、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の出力の記述がまったくわからないので困っております。
わかりにくい文章で本当に申し訳ございません。どうかよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
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/
この回答への補足
お忙しいところ、回答していただき誠にありがとうございます。
今回、対象のHTMLファイルは、IE6以上で正常に動作するようになっており、
Firefox(ちなみに3.6)でページを確認すると、吐き出されたCGIのデータをうまくHTMLで取り込めないようで、値の出力が真っ白になってしまいます。
ファイルAPIの対象は「Firefox 3.6 / 4β Google Chrome 6 」のようですのでごめんなさい。これだと違うようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
jspからjavascriptの変数引継ぎ
-
JavaScriptで配列を取得したい
-
二次元配列の全要素の全要素を...
-
外部csvデータを読み込む(d3.js)
-
フォーム入力値の重複チェック
-
JavaScriptでの動的な多次元配...
-
同じIDで定義した要素の配列を...
-
javascriptで行を抽出したいです。
-
jQueryで文字数カウンタ(複数...
-
ActiveXobjectが作成できない
-
JavaScriptで決まった「時刻」...
-
Boolean型配列中のTrueの有無を...
-
google apps scriptの終了のさせ方
-
関数でy=g(x)のgとは何の略です...
-
任意の座標をクリックさせるには
-
Linux バイナリ実行できない "...
-
javascriptでスロットゲームを...
-
window.openでタイトル名の指定
-
javascriptでiframeのURL変更は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
C#テキストボックスの文字を配...
-
React hooksが値を返して配列変...
-
オブジェクトから任意のプロパ...
-
javascript 変数名の連結をしたい
-
jspからjavascriptの変数引継ぎ
-
配列の1要素を代入した変数を使...
-
JavaScriptにおける[] とか :...
-
フォーム入力値の重複チェック
-
javascriptで行を抽出したいです。
-
undefinedを表示させない方法は...
-
javascriptで2つのArrayの...
-
WSH(Jscript)でファイル一覧
-
JavaScriptでの動的な多次元配...
-
Perlの配列をJavaScriptに渡せ...
-
[JS] setAttributeで保存される...
-
JSONデータを50音順でソートしたい
-
二次元配列の全要素の全要素を...
-
javascriptを用いて作成された...
-
バナーのランダム表示(複数、...
おすすめ情報