みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

JavaScriptの値を表示するには

ホームページを作っていて、CSVファイルから日付データを読んで画面に表示させ、表示させた日付をクリックしたとき、その日付の内容を次ページで表示させようと思っています。CSVファイルを読むところはできたのですが、表示できません。また、クリックできるようにするにはどうすればいいですか。初歩的だと思いますが、よろしくお願いします。
function prcTextFileRead() {
var objFileSys;
var objInFile;
var strScriptPath;
var strFileName;
var strFilePath;
var strRecord;
var i = 1;
var words = new Array();

objFileSys = new ActiveXObject("Scripting.FileSystemObject");
strFilePath = objFileSys.BuildPath(strScriptPath,strFileName);
try {
objInFile = objFileSys.OpenTextFile(strFilePath,1);
strRecord = objInFile.ReadLine();
do {
strRecord = objInFile.ReadLine();
words[i] = strRecord.split(",");document.f.Date.value = words[i][1];
i++;
} while(objInFile.AtEndOfStream==false);
objInFile.Close();
} catch(e) {
WScript.echo(strScriptPath + "にファイル" + strFileName + "がありませんでした。");
}
//オブジェクトの破棄
objFileSys = null;
objInFile = null;
}
------------------------------------------------

<BODY onLoad="prcTextFileRead();">
<script type="text/javascript">
document.write(document.f.Date.value);
</script>

投稿日時 - 2008-01-15 15:02:17

QNo.3682150

すぐに回答ほしいです

質問者が選んだベストアンサー

>CSVファイルを読むところはできたのですが、表示できません。

読込が出来ていれば、表示の部分は簡単です。
1列目にリンク先のURL、2列目に表示する文字列なら下記のような感じ。

document.write("<a href='" + words[i][0] + "'>" + words[i][1] + "</a><br>");

あと、BODYタグのonLoadはよりも、BODY内で直接スクリプトを呼ぶ方が簡単です。
----------------------------------------------------------------------
念のため補足しますが・・・

ActiveXObjectはIE系のブラウザ限定です、その他のブラウザでは動きません。

それと、一番重要なことですが、サーバにアップしたら、動きません。(^^;

パソコン内のHTMLファイルを直接開いた場合は、正常に動くと思いますが、
サーバに上げると、セキュリティの都合で、ファイルにアクセス出来なくなります。

ネットに公開する予定なら、別の手段を考える必要があります。

----------------------------------------------------------------------
以下、動作確認したサンプル(WindowsXP IE6)

<html>
<head>
<script type="text/javascript">
function prcTextFileRead() {
var objFileSys;
var objInFile;
var strScriptPath = ".\\";
var strFileName = "test.csv";
var strFilePath;
var strRecord;
var i = 1;
var words = new Array();

objFileSys = new ActiveXObject("Scripting.FileSystemObject");
strFilePath = objFileSys.BuildPath(strScriptPath,strFileName);

try {
objInFile = objFileSys.OpenTextFile(strFilePath,1);
strRecord = objInFile.ReadLine();
do {
strRecord = objInFile.ReadLine();
words[i] = strRecord.split(","); document.f.Date.value = words[i][1];

document.write("<a href='" + words[i][0] + "'>" + words[i][1] + "</a><br>");

i++;
} while(objInFile.AtEndOfStream==false);
objInFile.Close();
} catch(e) {
//WScript.echo(strScriptPath + "にファイル" + strFileName + "がありませんでした。");
alert(strScriptPath + "にファイル" + strFileName + "がありませんでした。");
}
//オブジェクトの破棄
objFileSys = null;
objInFile = null;
}
</script>
</head>
<body>
<form name="f">
<input name="Date" type="textbox">
</form>
<script type="text/javascript">
prcTextFileRead();
</script>
</body>
</html>

投稿日時 - 2008-01-15 18:21:16

お礼

ご丁寧にありがとうございました。やってみます。

ホームページと書いてしまいましたが、ホームページとは言わないのかもしれません。
CD-ROMにデータとHTMLファイルをおいてそのパソコン上で開いて実行したかったのです。

投稿日時 - 2008-01-16 09:39:08

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

クライアントにあるファイルを読み込むのですか ・・・
セキュリティチャックで跳ねられてしまいそうですが

こういった御用向きには クライアントからファイルをアップロードしてもらってそのデータを使ってサーバーサイドで処理する方向のように思います

投稿日時 - 2008-01-15 16:38:06

ANo.1

javascriptで値を次のページに持ち越すには通常はcookieを使わないと無理だよ

http://www.tohoho-web.com/wwwcook.htm

投稿日時 - 2008-01-15 15:39:55

お礼

ありがとうございます。
勉強してみます。

投稿日時 - 2008-01-16 09:40:19

あなたにオススメの質問