• ベストアンサー

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>

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

>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>

a-yu-ya
質問者

お礼

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

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

クライアントにあるファイルを読み込むのですか ・・・ セキュリティチャックで跳ねられてしまいそうですが こういった御用向きには クライアントからファイルをアップロードしてもらってそのデータを使ってサーバーサイドで処理する方向のように思います

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

javascriptで値を次のページに持ち越すには通常はcookieを使わないと無理だよ http://www.tohoho-web.com/wwwcook.htm

a-yu-ya
質問者

お礼

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